Non sapevo cosa fosse PancakeSwap Infinity fino a prima, oggi mi sono preso il tempo per leggere bene la documentazione, quanto segue è solo la mia comprensione personale

▰▰▰▰▰▰

Il protocollo V2/V3 è già da molti anni, credo che tutti siano già molto familiari, mentre Infinity (che può essere considerato V4) è più flessibile e aperto rispetto a prima, con tre caratteristiche principali

Architettura singleton - Tutte le pool di liquidità sono all'interno di un contratto Vault, è una grande cassaforte

Contabilità istantanea - Utilizzando la caratteristica EIP-1153 per calcolare prima e poi registrare, le transazioni multi-salto hanno anche vantaggi unici, risparmiando Gas

HOOK - Durante l'intero ciclo di vita della pool (cioè inizializzazione della pool, scambio, aggiunta di liquidità, rimozione di liquidità, ecc.), è possibile aumentare le funzionalità personalizzate, ad esempio se sei un certo membro puoi avere una commissione ridotta

▰▰▰▰▰▰

Qual è la differenza durante il processo di transazione rispetto a V2/V3?

  • V2/V3 è come un **distributore automatico**: metti una moneta, la macchina rilascia il prodotto, devi saldare immediatamente.

  • Infinity è come una **banca con un libro mastro super**: entri (Lock), all'interno puoi depositare, prelevare, scambiare, anche se durante il processo i fondi si sono mossi mille volte, la banca tiene solo il conto. Quando esci (Unlock), regoli se il saldo del tuo conto è in pareggio.

▰▰▰▰▰▰

Note dettagliate

Ora passiamo alla nota di interpretazione del documento, un apprendimento più profondo (logica pre-codice).

▰▰

Livello contabile & Vault

Il nucleo di questo protocollo è il Vault; tutte le Pool sono all'interno di questo contratto del vault, utilizzando un metodo di 'prima registrazione e poi regolazione'; se si tratta di transazioni multi-hop (Hop 1 -> Hop 2 -> Hop 3), nel processo intermedio non è necessario trasferire effettivamente i token, basta effettuare il pagamento finale del saldo netto, risparmiando notevolmente sulle Gas.

Il processo di transazione è: vault.lock() per ottenere un blocco dal vault, il vault risponderà con lockAcquired(……) (simile al callback di un prestito flash di V2/V3), quindi puoi effettuare tutti i processi necessari come Swap, modifyLiquidity in questo contesto, e alla fine confrontare il saldo finale con uno dei quattro metodi: take(), settle(), mint() o burn().

Il BalanceDelta è come una fattura, che registra quanto devi alla Pool, o quanto la Pool deve a te; in base al segno del delta si decide la direzione dei fondi, delta.amount0() > 0 o delta.amount0() < 0 per eseguire le tue operazioni.

Di solito, un valore maggiore di 0 significa che il protocollo ti deve dei token; puoi prendere i token con vault.take, oppure puoi mintare per depositarli nel vault e clear per eliminare il saldo residuo (riportando a zero) utilizzando questa funzione solo quando il costo del gas supera il valore dell'erc20.

Se è inferiore a 0, allora devi dei token alla pool, devi sincronizzare lo stato tramite vault.sync(…) e poi trasferire i token al vault, infine usare settle() per regolare i conti, così il vault o il contabile possono confrontare i saldi dei token per effettuare il pagamento.

Questo processo è simile a entrare in un supermercato, dove hai passato la tessera per entrare, hai scelto latte, carne di manzo e fruste di manzo, hai già cominciato ad accumulare debiti con il supermercato; alla fine, arrivi alla cassa per il conteggio, effettui il pagamento e alla fine ricevi la ricevuta.

Codice di esempio ufficiale

▰▰

PoolManager gestione della pool

Se Vault è un **grande vault (responsabile della custodia dei fondi)**, allora PoolManager è il **processore centrale (responsabile della logica di business)** che gestisce le regole del vault e calcola i risultati di tutte le transazioni.

PoolManager è anche un contratto singleton; Infinity ha ora due logiche AMM, CLPoolManager e BinPoolManager.

- CLPoolManager è la liquidità centralizzata di prima V3, che tutti conoscono bene, con una serie di concetti come Tick, sqrtPriceX96 e altri.

- BinPoolManager è attualmente un tipo di libro mastro di liquidità molto popolare, simile alla liquidità centralizzata di V3, ma distribuisce la liquidità in diversi Bins discreti, ciascun bin assegnato a un prezzo fisso. I fornitori di liquidità possono fornire liquidità a uno o più bin.

Il sito ufficiale ha un ottima figura per spiegare questo.

Sebbene ci siano due logiche diverse, in Infinity, tutte le pool saranno incapsulate in un contratto PoolManager (due indirizzi di contratto CL e Bin), dove:

  • PoolKey è una struttura che descrive ogni pool.

  • PoolId è un valore di tipo bytes32, derivato da PoolKey.

  • Initializing serve per inizializzare la pool.

Include tutti gli eventi di liquidità principali come swap, modifyLiquidities, ecc., che si svolgono all'interno di questo contratto.

▰▰

Infinity Universal Router e Permit2

Il sito ufficiale menziona anche l'efficiente Infinity Universal Router e Permit 2, che possono autorizzare rapidamente e operare in v2, v3.

Infinity per il processo di scambio, chi è interessato può studiare il documento separatamente.

| Vault | 0x238a358808379702088667322f80aC48bAd5e6c4 |

| CLPoolManager | 0xa0FfB9c1CE1Fe56963B0321B32E7A0302114058b |

| BinPoolManager | 0xC697d2898e0D09264376196696c51D7aBbbAA4a9 |

| CLPositionManager | 0x55f4c8abA71A1e923edC303eb4fEfF14608cC226 |

| CLQuoter | 0xd0737C9762912dD34c3271197E362Aa736Df0926 |

| BinQuoter | 0xC631f4B0Fc2Dd68AD45f74B2942628db117dD359 |

| MixedQuoter | 0x2dCbF7B985c8C5C931818e4E107bAe8aaC8dAB7C |

#BinanceABCs $CAKE $BNB