From 2db67baa89c19ce186801b5074107a9c76719b67 Mon Sep 17 00:00:00 2001 From: Philipp Gackstatter Date: Mon, 20 Nov 2023 15:02:24 +0100 Subject: [PATCH] Make `Amount >= Staked Amount` check syntactic --- tips/TIP-0042/tip-0042.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tips/TIP-0042/tip-0042.md b/tips/TIP-0042/tip-0042.md index 98c490641..1bbdbf3d9 100644 --- a/tips/TIP-0042/tip-0042.md +++ b/tips/TIP-0042/tip-0042.md @@ -220,7 +220,7 @@ account is locked to that account. -### Additional syntactic transaction validation rule +### Additional Transaction Syntactic Validation Rules - The following conditions must all hold: - `Block Issuer Key Count >= 1`. @@ -230,7 +230,7 @@ account is locked to that account. - Each key in `Block Issuer Keys` must be lexicographically ordered based on the concatenation of its `Public Key Type` and `Public Key`. -### Additional semantic transaction validation rule +### Additional Transaction Semantic Validation Rules - Let `Past Bounded Slot Index` be given by `Commitment Index + Max Committable Age` where `Commitment Index` is the slot index of the commitment input. @@ -344,7 +344,11 @@ which they were selected to participate in the validator committee. -### Additional semantic transaction validation rule +### Additional Transaction Syntactic Validation Rules + +- The `Amount` in the containing account output satisfies `Amount >= Staked Amount`. + +### Additional Transaction Semantic Validation Rules - Let `Future Bounded Epoch Index` be the epoch index corresponding to the slot index given by `Commitment Index + Min Committable Age` where `Commitment Index` is the slot index of the commitment input. @@ -359,14 +363,12 @@ which they were selected to participate in the validator committee. - When a _Staking Feature_ is present in an account output on the output side of a transaction and it was not present on the input side, the transaction that contains this output is valid, if and only if all of the following conditions hold: - - The `Amount` in the containing account output satisfies `Amount >= Staked Amount`. - `Start Epoch` must be set to `Past Bounded Epoch Index`. - `End Epoch` satisfies `End Epoch >= Past Bounded Epoch Index + Staking Unbonding Period`. - When a _Staking Feature_ is present in an account output on the input side of a transaction, the transaction that contains this input is valid, if and only if all of the following conditions hold: - If `Future Bounded Epoch Index <= End Epoch`, all of the following conditions must hold: - A _Staking Feature_ must be present on the corresponding account on the output side of the transaction. - - The `Amount` in the containing account output satisfies `Amount >= Staked Amount`. - The fields `Staked Amount`, `Start Epoch` and `Fixed Cost` on the feature on the input and the feature on the output side match. - One of the following conditions hold: @@ -384,7 +386,6 @@ which they were selected to participate in the validator committee. [TIP-40 (Validator Rewards)](../TIP-0040/tip-0040.md#validator-rewards). - All of the following conditions hold: - A _Staking Feature_ must be present on the corresponding account on the output side of the transaction. - - The `Amount` in the containing account output satisfies `Amount >= Staked Amount`. - `Start Epoch` is set to `Past Bounded Epoch Index`. - `End Epoch` satisfies `End Epoch >= Past Bounded Epoch Index + Staking Unbonding Period`. - A _Reward Input_ must be present whose `Index` references the account input.