Improve separation of concerns in ALP contracts to enable deeper upgradeability
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Refactoring
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Ambito
- blockchain
Direzione di ricerca
Start with FlowALPModels.cdc, especially the map of position locks around line 1639 and the InternalPosition reference mentioned in the issue. Map the tightly coupled ALP components, then determine which separations are required before launch versus longer-term work; completion requires an agreed decomposition scope rather than a single specified change.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Context
Issue #166 introduced minimum upgradeability changes by making it possible to upgrade data structures in the future and reducing the size of our biggest contract. However, as noted in that work, separation of concerns has not been meaningfully improved and all parts of the ALP remain strongly coupled.
This issue tracks the next level of upgradeability work: decomposing ALP components to reduce coupling, which will make the contracts easier to upgrade, maintain, and reason about.
Current State (after #166)
- It is possible to upgrade data structures in the future
- Our biggest contract is smaller than it was before
- However, separation of concerns has not improved and all ALP components are strongly coupled
Goal
Decompose the different components of the ALP into separate, less-coupled components. This would give us:
- Improved separation of concerns across ALP contracts
- Easier targeted upgrades to individual components without affecting the whole system
- Code that is easier to reason about, test, and maintain
Ideas / Potential Work
- Replace the map of position locks with a resource representing mutation rights that can be retrieved from an
InternalPositionreference. The reference would only give away one such resource at a time -- replacing "provides safety if all callsites use the lock map properly" with a type-level guarantee that is easier to reason about. (originally from #166) - Identify other tightly coupled components that can be extracted into separate contracts or modules
- Evaluate which couplings are highest priority to address before launch
Relationship to #166
This issue picks up where #166 leaves off. The work in #166 was scoped to minimum viable upgradeability. This issue covers the deeper structural improvements discussed as a follow-up.
Notes
- Identify which improvements are "must have" before launch vs. longer-term
- Lingua principale
- Cadence
- Stelle
- 40
- Fork
- 2
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di onflow/FlowALP
-
Restrict public constructor of PositionSourceForse di nuovo libera @liobrasil l’ha presa 197 giorni fa e non c’è nessuna pull request aperta. Apertabug
-
Port MOET changes from #251 to mainForse di nuovo libera @nialexsan l’ha presa 206 giorni fa e non c’è nessuna pull request aperta. Aperta
-
Deposit Capacity AttacksForse già presa @mts1715 l’ha presa 213 giorni fa. Aperta
-
Immediate deposit+withdrawal saturates deposit rate limit capacityForse di nuovo libera @tim-barry l’ha presa 198 giorni fa e non c’è nessuna pull request aperta. Aperta
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
Tutte le issue di onflow/FlowALP
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
paradigmxyz/reth#28086 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 87/100
btclib-org/btclib-node#2035 ·
I maintainer di solito rispondono entro 1 giorno
-
bug core difficulty: medium priority: high reliability sdk Stellar Wave
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
trustflow-protocol/trustflow-sdk#599 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
D-easy P-low T-task
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100