Architettura e codice
Il repository riunisce contratti Solidity, una dapp React/Vite e due servizi Node. Questo GitBook è autonomo in gitbook/: la sua build non legge configurazioni private né dati di rete del protocollo.
Le directory
| Directory | Responsabilità |
|---|---|
contracts/src |
Token, hook, librerie, interfacce e contratti periferici |
contracts/test |
Test di scenari e invarianti Foundry |
contracts/audit |
Harness e campagne di verifica complementari |
contracts/scripts |
Esportazione ABI, controlli e procedure di deployment |
contracts/deployments |
Manifest pubblici delle versioni e cronologia |
dapp/src/chain |
Configurazione, ABI, letture, quotazioni e transazioni |
dapp/src/pages |
Swap, Proof, Keepers, roadmap e moduli V2 |
services/shared |
Configurazione condivisa, client, ABI e monitoraggio dell’esecuzione |
services/keeper |
Avvio delle operazioni permissionless |
services/floor-bot |
Lettura degli eventi e preparazione delle pubblicazioni |
audit/reports |
Rapporti datati e prove associate alle revisioni |
gitbook/docs |
Fonti francesi di questa documentazione |
I contratti del nucleo
| Componente | Responsabilità |
|---|---|
CubitToken |
ERC-20 con emissione iniziale unica di 21 M; burn autorizzato solo all’hook |
CubitHook |
Tasse, compartimenti contabili, liquidità, manutenzione e collegamento V2 |
BandLib |
Calcolo dei prezzi, conversione e arrotondamento ai tick, geometria delle bande |
WallLib |
Nuova libreria collegata per le posizioni dei muri fissi; revisione ancora da validare |
PoolManager v4 |
Stato del pool, posizioni di liquidità, swap e regolamento |
L’hook è il fornitore di liquidità autorizzato per il pool CUBIT. I fondi vengono seguiti nelle posizioni e tramite claim ERC-6909 del PoolManager; il saldo ETH nativo dell’indirizzo dell’hook non è quindi una misura sufficiente delle riserve.
WallLib lavora sullo storage dell’hook. Una libreria collegata non diventa proprietaria delle posizioni: claim e posizioni restano assegnati all’hook. Il bytecode della libreria e il linking vanno inclusi nella verifica del deployment.
I contratti periferici
| Componente | Responsabilità |
|---|---|
CubitRouter |
Swap exact-input/output, limite di slippage, scadenza, regolamento e burn finale delle vendite |
CubitLens |
Viste derivate, stati di manutenzione e lettura del libro |
CubitV2 |
Registro stabile dei moduli, revisione e referral first-bound |
CubitVault |
Depositi CUBIT, blocco e ricompense WETH |
CubitForge |
Beta curata di mercati figli isolati |
CubitLaunch |
Deposito iniziale, inizializzazione ed eventuale primo acquisto tassato in un’operazione atomica |
Router, Lens, Vault e Forge possono essere sostituiti nel registro dal team. Token, hook, identità del pool, WETH delle ricompense e ancoraggio del registro non seguono questo meccanismo di sostituzione.
Il percorso di una lettura
Frontend o keeper
→ manifest pubblico: rete, nucleo, registro
→ registro a un dato blocco: moduli + revisione
→ controllo dei collegamenti dei moduli
→ Lens e viste dell’hook allo stesso blocco
→ visualizzazione o simulazione di un’azione
Nel frontend, releases.ts risolve i moduli e vault.ts conserva la lettura dei vecchi Vault. Una risposta RPC mancante non deve autorizzare una firma.
Il percorso di uno swap
Il frontend ottiene una quotazione e poi una simulazione. Il router apre il contesto di regolamento del PoolManager; l’hook interviene nello swap per applicare le tasse e isolare i token assorbiti. Il router regola i delta e completa le operazioni necessarie alla vendita.
I confini sono importanti: il callback del router è accessibile solo al PoolManager durante l’operazione prevista e il payer proviene dal chiamante autenticato del router.
La revisione a più muri
La libreria WallLib aggiunge un libro di muri con ID permanenti e un indice dei tick. I vecchi tick vengono conservati; i nuovi fondi usano l’obiettivo corrente. Il percorso delle posizioni raggiunte durante una vendita è in corso di validazione.
Questa revisione riguarda invarianti, calcoli del Lens, frontend, ABI, servizi e deployment delle librerie. La compilazione non basta a dichiarare tutti questi livelli compatibili con Sepolia storico. Stato delle versioni.
Fonti: file citati del repository, in particolare WallLib.Book, WallLib.Wall, CubitHook, releases.ts e i README dei servizi.