Ein Vertrag, der 1.000 DUSK hält, kann das direkt staken.

Dieser Aufruf braucht jedoch immer noch einen Pfad.

Ich habe die Mindestmenge von 1.000 DUSK zunächst auf die naheliegendste Weise gelesen: Sobald ein Vertrag über genügend Guthaben verfügt, sollte als nächster Schritt stake_from_contract erfolgen.

Das ist nicht so.

Dusk's stake_from_contract erwartet ein ReceiveFromContract, und dieser Aufruf muss über eine Mittelübertragung ankommen. Die Funktion ist kein eigenständiger Aufruf, den ein Vertrag gegen sein eigenes Guthaben ausführen kann.

Nehmen wir an, ein Vertrag hält genau 1.000 DUSK.

Das Minimum ist abgedeckt. Trotzdem ruft er stake_from_contract direkt auf.

Das ist noch immer der falsche Pfad.

Der dokumentierte Ablauf schickt den Wert über contract_to_contract, wobei das Stake Contract als Ziel dient, mit fn_name = "stake_from_contract" über den Transfer Contract.

Also hat der Vertrag bereits das Kapital, während die Staking-Funktion noch die Übertragungs-Mechanik benötigt, um dieses Kapital in den erwarteten Aufrufkontext zu bringen.

Es passieren zwei Dinge gleichzeitig: Der Transferpfad bewegt den Wert, und das Stake Contract macht daraus den Stake, sobald der Wert ankommt.

Wie viel des Staking-Vorgangs kommt dadurch, dass der Transferpfad diesen Aufrufkontext herstellt, und wie viel kommt dadurch, dass das Stake Contract validiert, was ankommt?

@Dusk_Foundation #dusk $DUSK