Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/interface/ICorporateActionsV1.sol
Original file line number Diff line number Diff line change
Expand Up @@ -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.
///
Expand Down
11 changes: 7 additions & 4 deletions src/lib/LibCorporateActionReceipt.sol
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down
Loading