Skip to content

Latest commit

 

History

History
75 lines (56 loc) · 3.59 KB

File metadata and controls

75 lines (56 loc) · 3.59 KB

ic-py Maintenance & Development Roadmap

Guiding Principles:

  • Fix all known security vulnerabilities in ic-py
  • Modernize and complete the Candid type system
  • Maintain feature-and-schedule alignment with agent-rs long-term

Milestone 1

  • Endpoint upgrade

  • Timeouts & error classification

    • Issues: Missing timeouts on agent calls; lack of fine-grained error categories for canister responses (e.g. exhausted cycles, missing WASM)
    • References: #117#115
    • Solution:
      1. Implement configurable timeouts on all agent calls
      2. Introduce structured error types for common canister-level failures

Milestone 2

  • IC certificate verification
    • Issue: request_status_raw and request_status_raw_async do not verify certificates, allowing a malicious node to tamper with update responses
    • References:
    • Solution:
      1. Mirror agent-rs’s certificate-checking logic (see agent-rs implementation)
      2. Resolve Python–BLS compatibility by invoking the Rust BLS crate via FFI or another bridging approach

Milestone 3

  • Candid type-system enhancements
    • Issue: Missing support for the latest Candid features (e.g. composite queries, new primitives)
    • References:
    • Solution:
      1. Update ic-py’s Candid parser/generator with all missing types per the official spec
      2. Add a test suite to validate correctness against the canonical Candid reference

Milestone 4

  • Dynamic HTTP provider & routing

    • Implement latency-based, adaptive routing between boundary nodes
    • Support more flexible selection of endpoints at runtime
  • Expanded API surface

    • High-level wrappers for ICRC-compliant ledgers (ckBTC, ckETH, ckUSDc, etc.)
    • Out-of-the-box helpers for interacting with Bitcoin, Ethereum, and other canisters
  • Ongoing alignment & optimization

    • Keep pace with agent-rs’s feature roadmap
    • Targeted performance tuning, stricter type checks
    • Define additional milestones once Milestones 1–3 are complete

Other long-standing bugs

  • Precision of returned data
    • Issue #107 – floating-point vs. integer handling