diff --git a/src/interface/ICorporateActionsV1.sol b/src/interface/ICorporateActionsV1.sol index 976b8d1..256455f 100644 --- a/src/interface/ICorporateActionsV1.sol +++ b/src/interface/ICorporateActionsV1.sol @@ -419,14 +419,14 @@ interface ICorporateActionsV1 { returns (uint256 prevActionId, uint256 actionType, uint64 effectiveTime); /// @notice Read the ABI-encoded parameters blob for a scheduled or - /// completed corporate action, given a cursor returned from one of the - /// traversal getters. + /// completed corporate action, given an `actionId` returned from one + /// of the traversal getters. /// /// @dev Intended for cross-contract consumers that need to apply the /// action (e.g. the receipt contract reading a stock split multiplier /// during its own rebase walk). For stock splits, the returned bytes /// decode to a single `Float` via `LibStockSplit.decodeParametersV1`. - /// Consumers should mask the cursor's `actionType` (via `nextOfType` / + /// Consumers should mask the action's `actionType` (via `nextOfType` / /// `prevOfType`) before calling this to ensure they know which decoder /// to apply. /// diff --git a/src/lib/LibCorporateActionReceipt.sol b/src/lib/LibCorporateActionReceipt.sol index e9ddf07..a4196f6 100644 --- a/src/lib/LibCorporateActionReceipt.sol +++ b/src/lib/LibCorporateActionReceipt.sol @@ -52,10 +52,13 @@ library LibCorporateActionReceipt { /// (`testReceiptStorageLayoutPin`) must be extended in every later PR /// that appends a new field. struct CorporateActionReceiptStorage { - /// Per-(holder, id) migration cursor — the 1-based index of the - /// last stock split node this `(holder, id)` pair was migrated - /// through, as seen on the vault's corporate-action linked list. - /// 0 = never migrated. + /// Per-(holder, id) migration cursor — the action id of the last + /// migration node this `(holder, id)` pair was migrated through, + /// as seen on the vault's corporate-action linked list. The + /// default 0 corresponds to the vault's bootstrap node (idx 0, + /// identity for splits), so a fresh `(holder, id)` pair's default + /// cursor of 0 is semantically equivalent to "no real migration + /// applied yet". mapping(address holder => mapping(uint256 id => uint256 cursor)) accountIdCursor; }