superform-xyz / superform-core

Other
98 stars 37 forks source link

feat: Add centrifuge vault tests SUP-7374 + New architecture of Async State Registry to handle user-based aggregated processing SUP-7583 + Perform scenario testing with selective chains + SUP-7745 #583

Closed 0xTimepunk closed 2 months ago

0xTimepunk commented 4 months ago

Async 7540 vaults that use constant Request Ids of 0 follow an aggregated model when handling user (controller) requests into the claimable step.

Due to this nature, a payload by payload processing as originally existent on TimelockStateRegistry and adapted into the first version of AsyncStateRegistry does not work well. The main reasons for this are:

Action 2:

For all these reasons we decided to revamp the AsyncStateRegistry into a processing by user/superformId pair. This, coupled with an architecture of setting RequestConfigs for each one of these pairs, would allow a keeper to claim the entire amount claimable with the desired user settings. The settings would be overwritten on each new incoming payload from the ERC7540Form in the 1st step via the function updateRequestConfig. The other functions claimAvailableDeposits and claimAvailableRedeems were refactored. The 7540Form stayed mostly the same.

This PR is still in process as some important checks are still missing with the new implementation, but it is indicative of the final intended architecture (which processes as long as there's a claimable amount >0 for a given user/superformId)

linear[bot] commented 4 months ago

SUP-7374 Add Centrifuge Real vaults once deployed to a live sepolia

linear[bot] commented 4 months ago

SUP-7583 Decide on the final architecture / UX of 7540 Async State Registry

linear[bot] commented 2 months ago

SUP-7745 Add centrifuge new real vault and update protocol actions tests/helper functions