Skip to content

[Advanced]: Implemente compressed DER SPKI export methods for ECDSA secp256k1 #2041

@MonaaEid

Description

@MonaaEid

🧠 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, and Query base 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 .proto files, _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"

  1. Architectural Fit: The solution must fit naturally into the existing SDK abstractions. Avoid "hacks" or isolated logic that bypasses the core execution model.
  2. Security & Correctness: Evaluate all logic for injection risks, state corruption, or thread-safety issues. Every line of code must be manually verified.
  3. Maintainability: Code must be clear enough for any other maintainer to debug without your assistance. Prefer standard patterns over "clever" one-liners.
  4. 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?

Metadata

Metadata

Assignees

Labels

advancedrequires knowledge of multiple areas in the codebase without defined steps to implement or examplespythonUses Python programming language

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions