Ein Dusk-Vertrag kann die richtige DUSK-Saldo-Bilanz halten, während mein Treasury-Monitor nach einem API-„Upgrade“ plötzlich nichts mehr anzeigt.
Die Falle liegt nicht im Vertrag. Sie liegt in der Antwortstruktur.
Die alte /on/contract: <id>/status-Route gab ein Objekt mit dem Saldo darin zurück. Der Ersatzpfad fragt den contract_balance über den Transfer-Genesisvertrag von Dusk ab, und die Antwort ist der Skalarwert des Saldos selbst.
Wenn ich also den Endpunkt migriere, aber den Parser unverändert lasse, ist response.balance weg. Ein Fallback wie undefined → 0 kann einen finanzierten Vertrag leer aussehen lassen, obwohl sich der On-Chain-Saldo nie bewegt hat.
Solche Wartungsfehler würde ich erwarten, dass sie grundlegende Health-Checks überleben. Rusk antwortet. Die Anfrage gelingt. Der Vertrag existiert. Nur die Interpretation ist falsch.
Ich würde in dem Migrations-Test einen bekannten Vertrags-Saldo fest verdrahten und die alten gegen die neuen Werte vergleichen, bevor ich produktive Reads umstelle. Nicht nur HTTP 200. Nicht nur gültiges JSON. Der gleiche Integer LUX muss die Parser-Grenze überstehen.
Wenn ein Dusk-Treasury Gelder korrekt halten kann, während meine Software Null meldet, hat die API-Migration den finanziellen Zustand verändert, den mein Operator als existent annimmt.
#dusk $DUSK @Dusk
Die Falle liegt nicht im Vertrag. Sie liegt in der Antwortstruktur.
Die alte /on/contract: <id>/status-Route gab ein Objekt mit dem Saldo darin zurück. Der Ersatzpfad fragt den contract_balance über den Transfer-Genesisvertrag von Dusk ab, und die Antwort ist der Skalarwert des Saldos selbst.
Wenn ich also den Endpunkt migriere, aber den Parser unverändert lasse, ist response.balance weg. Ein Fallback wie undefined → 0 kann einen finanzierten Vertrag leer aussehen lassen, obwohl sich der On-Chain-Saldo nie bewegt hat.
Solche Wartungsfehler würde ich erwarten, dass sie grundlegende Health-Checks überleben. Rusk antwortet. Die Anfrage gelingt. Der Vertrag existiert. Nur die Interpretation ist falsch.
Ich würde in dem Migrations-Test einen bekannten Vertrags-Saldo fest verdrahten und die alten gegen die neuen Werte vergleichen, bevor ich produktive Reads umstelle. Nicht nur HTTP 200. Nicht nur gültiges JSON. Der gleiche Integer LUX muss die Parser-Grenze überstehen.
Wenn ein Dusk-Treasury Gelder korrekt halten kann, während meine Software Null meldet, hat die API-Migration den finanziellen Zustand verändert, den mein Operator als existent annimmt.
#dusk $DUSK @Dusk