Skip to main contentA-REX Foundation

Diagrammes · 04

Filiation via transform

transform est le seul moyen de fabriquer un lot à partir d'un lot. Elle détruit les entrées, émet les sorties et enregistre les parents ; BatchTransformed correspond un pour un à un TransformationEvent d'EPCIS 2.0.

Fractionnement, fusion et traitement forment une seule opération

flowchart LR
    subgraph SPLIT["Réorganisation (fractionnement) · aucun rôle nécessaire · même denrée et même unité · quantité conservée"]
        W1["#1 blé 250 t"] --> W2["#2 blé 60 t"]
        W1 --> W3["#3 blé 40 t"]
    end
    subgraph MERGE["Réorganisation (fusion)"]
        M1["#4 café 10 t"] --> M3["#6 café 25 t"]
        M2["#5 café 15 t"] --> M3
    end
    subgraph PROC["Traitement · TRANSFORMER_ROLE · la denrée ou la quantité change"]
        P1["#2 blé 60 t"] --> P2["#7 farine 45 t"]
    end

Les parents sont interrogeables on-chain

flowchart TB
    F7["parentsOf(7) → [2]"] --> F2["parentsOf(2) → [1]"] --> F1["parentsOf(1) → []"]

Un rappel remonte parentsOf jusqu'à l'origine et parcourt les événements BatchTransformed vers l'aval jusqu'à chaque lot dérivé. Un audit de bilan massique compare les quantités d'entrée et de sortie de chaque étape de traitement au ratio certifié.

Règles appliquées par la référence

RègleOù
Les entrées doivent exister, ne pas être retirées et être détenues par from (ou par l'appelant approuvé par from)transform, _update
La réorganisation de lots (même denrée, même unité, Σ entrées = Σ sorties) ne nécessite aucun rôlevérification isRebatch
Tout le reste exige TRANSFORMER_ROLEtransform
Chaque sortie enregistre parents = inputIds et issuer = msg.senderstockage
Les hooks voient OP_TRANSFORM pour les entrées et les sortiescontexte de _update