-
Notifications
You must be signed in to change notification settings - Fork 240
[Advanced]: Implemente compressed DER SPKI export methods for ECDSA secp256k1 #2041
Description
🧠 Advanced Contributors — Prerequisites & Expectations
Caution
Advanced issues are the highest-risk work in this project. We will reject PRs that do not meet these standards.
🏁 Concrete Prerequisites
- Proven History: Successfully completed ≥ 10 non-trivial intermediate issues in this repo.
- Consistency: ≥ 3–4 months of active, human-led contributions to this SDK.
- Expertise: Deep architectural understanding of
_Executable,Transaction, andQuerybase classes. - Advanced Python: Demonstrated proficiency with complex patterns (e.g., async concurrency, decorators, or state management) used in the core SDK.
Note
Workflow Exception: For issues focused on GitHub Actions / Workflows, the Python-specific thresholds above may be waived if the contributor demonstrates expert-level proficiency in CI/CD security and automation.
⚠️ AI Usage Policy
Using AI to generate code for Advanced issues is strictly forbidden. AI may be used only to help explain file relationships. Submitting AI-mined code or unvalidated generated output is grounds for immediate rejection.
⏱️ Timeline & Workflow
- Typical time: ~1 month / ~50 hours.
- 🔴 Completing an advanced issue in 1–3 days is a red flag and will likely be rejected.
- Mandatory: Post your proposed architectural approach as a comment and wait for explicit maintainer approval before writing any code.
🐞 Problem Description
We need to add compressed DER SPKI export support for ECDSA secp256k1 public keys.
Motivation
-
Provide standardized DER encoding utilities for cryptographic operations.
-
Ensure interoperability with external systems requiring compressed DER SPKI format.
🛠️ Implementation Notes
Technical domains involved in this issue:
- API Client Architecture (request → serialization → execution → response mapping)
- Backward Compatibility (preserving method signatures, defaults, and return types)
- Protobuf Alignment (reading
.protofiles,_to_proto()/_from_proto()correctness) - State & Immutability (correct usage of guards like
_require_not_frozen) - Execution Boundaries (retry logic, backoff, node selection, gRPC deadlines)
Replace this with specific implementation notes.
🛡️ Quality & Review Standards
The bar for advanced PRs is "safe, maintainable, architecturally sound, and production-ready."
🚀 Defining "Production Ready"
- Architectural Fit: The solution must fit naturally into the existing SDK abstractions. Avoid "hacks" or isolated logic that bypasses the core execution model.
- Security & Correctness: Evaluate all logic for injection risks, state corruption, or thread-safety issues. Every line of code must be manually verified.
- Maintainability: Code must be clear enough for any other maintainer to debug without your assistance. Prefer standard patterns over "clever" one-liners.
- Backward Compatibility: Public API signatures must be preserved. If a breaking change is required, it must be explicitly managed through a deprecation cycle.
✅ PR Quality Checklist
Before opening your PR, the contributor must confirm:
- I understand the system-wide impact of these changes on affected modules and performance.
- The system design fits with current Hiero SDK architectural approaches.
- I have tested my changes extensively against both local and network environments.
- I have verified naming, types, and field ordering against pinned Protobufs (v0.72.0-rc.2).
- Every line of code is personally understood and explainable (no unvalidated AI code).
📚 Resources & Support
Project References:
🆘 Stuck?
- Office Hours (Wednesdays, 2pm UTC)
- Discord #hiero-python-sdk