HERO Near Security Audit & Hardening #3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "master-security"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
This PR completes Phase 2 (Security Audit) of the HERO Near project and prepares the codebase for testnet deployment. All critical and medium security issues have been addressed, comprehensive documentation has been added, and the test suite now includes 101 passing tests.
🔒 Security Fixes
Critical Issues (2/2 Fixed)
spore_tokenconfigurable at initializationMedium Issues (4/4 Fixed)
✨ New Features
2-of-3 Multisig Governance (SPORE Token)
Implemented a complete proposal-based multisig system:
New methods:
propose_*()- Create proposals (5 action types)confirm_proposal(id)- Add confirmationrevoke_confirmation(id)- Remove confirmationget_pending_proposals()- View pending proposalsget_multisig_members()- View membersget_threshold()- Returns 2SPOREX Rate Limits
Added industry-standard rate change protection:
Withdrawal Callbacks
All cross-contract transfers now use callbacks to handle failures:
SPOREX:
on_withdraw_usdh_complete()- Restores USDH on failureon_withdraw_gld_complete()- Restores GLD on failureon_withdraw_spore_complete()- Restores SPORE on failureCredit Vault:
on_withdraw_complete()- Restores bucket on failureon_spend_complete()- Restores bucket + allowance on failure📚 Documentation
New Files
docs/ARCHITECTURE.mddocs/SECURITY_AUDIT.mddocs/MULTISIG_DESIGN.mdcrates/rhai-near/examples/tokens/spore_multisig.rhaiUpdated Files
docs/ROADMAP.mdcontract/spore/README.mdcontract/sporex/README.mdREADME.md📁 Files Changed
Contracts Modified
Setup Modified
Documentation Added
✅ Testing
All 101 tests passing:
Test Coverage:
🔄 Breaking Changes
SPORE Token:
new()now requires exactly 3multisig_members(previously accepted any number)required_confirmationsparameter removed (hardcoded to 2)Credit Vault:
new()now requiresspore_token: AccountIdparameterMigration: Clean deployment required. Existing deployments need redeployment with new initialization parameters.
📊 Security Summary
Overall Risk: 🟢 Low - Ready for Testnet Deployment
🚀 Next Steps
feat: Add security audit documentation and fix critical vulnerabilities in contractsto HERO Near Security Audit & Hardening