Commit Graph
3 Commits
Author SHA1 Message Date
davidherranandClaude Fable 5 114721c24a fix(ink/credential): cota anti-griefing del Vec del holder (audit C, HIGH DoS)
Audit ultra 2026-07-04 (dimensión ink-contracts, decisión C de David): un issuer
malicioso podía emitir credenciales ilimitadas a una VÍCTIMA, bloateando su
holder_credentials: Vec hasta que cualquier op que lo cargara (issue/read)
excedía el gas → griefing DoS. Fix: MAX_CREDENTIALS_PER_HOLDER=512 + error
HolderCredentialLimitReached antes del push. (Nota: el índice issuer_credentials
de un emisor de alto volumen debe migrar a Mapping<(issuer,i),id> paginado —
trabajo futuro; no es griefing de terceros.) Contrato 4 tests verde.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 20:05:12 -05:00
davidherranandClaude Opus 4.8 34a2041f2b fix(contracts): cierra migración ink! v6 (credential) + FIX-1 V1-H7 (escrow milestone sum)
Completa la capa de contratos: los 4 templates buildables migrados a
ink! 6.0.0-beta.1 (17 tests verde). El 5º (mdk-reconciliation) es design-only
(DESIGN.md, sin código Rust — nada que migrar).

origin-credential-mint: migración ink! v6 (Address/U256/StorageLayout). Su
issue() ya era CEI-correcto (muta estado antes del transfer) — es el template
que el roadmap cita como referencia. 4 tests verde (+ guard test).
NOTA: FIX-4 (verify de issuer_signature on-chain) sigue pendiente — necesita el
payload canónico de credencial + precompile Ed25519 (Phase 3.x), no es parte de
la migración.

FIX-1 V1-H7 (escrow): enforce Σ milestone.amount <= total_amount en
add_milestone (previene sobre-liberación) + completion vía milestone_total +
sweep terminal del residual no-asignado al depositor (deposited − milestone_total).
5 tests verde (+ test del invariante con set_caller). El sweep (transfer) se
valida E2E en nodo — node-gated.

17 tests verde totales (escrow 5 + staking 4 + nft 4 + credential 4).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 21:51:13 -05:00
davidherran a1be3609a1 feat(contracts): v0.0.44 — Slice 3.4 origin-credential-mint template SCAFFOLD (Ed25519+BLAKE3) 🎉
Ship Slice 3.4 v0.0.44 — third foundational template del Origin Contract Atelier.
Cryptographically verifiable credentials (academic + professional + KYB + skill
mastery) usando Ed25519 signatures + BLAKE3 content addressing. Sussi Ethos
schema integration canonical.

Cambios:
- contracts/origin-credential-mint/{Cargo.toml,lib.rs,README.md}: full template
- 5 CredentialType variants: Academic + Professional + Kyb + Skill + Custom
- Storage canonical: authorized_issuers whitelist + credentials + holder/issuer
  indices
- 3 events: CredentialIssued, CredentialRevoked, IssuerAuthorized
- 10 error variants + Result type
- 7 read methods (free per Inmutable #37): owner, treasury, issue_fee,
  total_credentials, is_issuer_authorized, credential, credentials_of_holder/issuer
- 1 verify() method canonical (read-only, gratis): valid si !revoked && !expired
- 3 write methods: authorize_issuer (owner-only), issue (authorized + payable),
  revoke (issuer-only)
- 3 unit tests canonical

Inmutables compliance:
- #16 HTS: issue_fee modulated HardwareTier escuelas Pi 5
- #26 Content-Addressed: BLAKE3 + Ed25519 inmutables post-mint
- #37 Free perpetua: 7 reads + verify() sin payment
- #41 AGI Cross-Species: AGI puede ser issuer (Daimonion) OR holder

Sussi Ethos schema integration canonical pending Phase 3.x cross-pillar coord:
schema_type enum + signature pattern + KYB Oracle whitelist via governance Phase 5.

Cross-pillar wire:
- Sussi Pillar 6 (Ethos Oracle): KYB issuers
- Marihan Atelier: skill mastery credentials
- Charon Pillar 4: deploy + storage on-chain

Use cases:
- University diplomas (UCLA → student)
- Professional certs (PMP, AWS → professional)
- KYB Nivel 3+ (Sussi Oracle → institution)
- Skill mastery (Marihan Atelier → originner)
- Origin Wallet identity (Foundation → citizen)

Próximo Ship Slice 3.5 v0.0.45: origin-staking contract template
(validator + beacon + reputation patterns, CHN-3 NPoS Phase 2 prep).

⚓ Path A Slice 3.4 SCAFFOLD shipped. Templates 3/5 complete.

🤖 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 09:06:35 -05:00