Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Протокол

Контракти Protocol v1.1.0 надають блокчейн-компоненти для Протоколу об’єднання зобов’язань (CPP), описаного в Розділі 1 Білої книги. Ця довідка відповідає публічному випуску v1.1.0.

На сторінці Поняття й термінологія пояснено рівні продукту, відповідальні ролі, життєвий цикл дій, види вартості, ліміти, комісії та статуси, які використовуються тут.

Grassroots Economics Foundation (GEF) керує прогресивним вебзастосунком на cosmolocal.credit, який є одним зі способів взаємодії з цими контрактами. Застосунок і контракти — різні речі. Керування інтерфейсом не робить GEF автоматично емітентом ваучера, Куратором Пулу, зберігачем, гарантом або стороною користувацької транзакції. Ці ролі залежать від конкретного розгортання, адрес контролерів і опублікованих умов емітента або Пулу. Див. Умови користування.

Схема розгортання

Більшість модулів зі станом ініціалізуються як екземпляри проксі ERC-1967 через ERC1967Factory від Solady. Кілька екземплярів можуть використовувати одну реалізацію, зберігаючи окремих власників, конфігурацію та сховище. Розгортання також може використовувати детерміновані salts, щоб адреси можна було передбачити до розгортання.

Не кожен контракт використовує проксі. DecimalQuoter і SwapRouter є прямими розгортаннями без стану; RescueVault і ERC1967Factory також розгортаються безпосередньо. Решта наведених нижче модулів зі станом призначені для розгортання через проксі.

Кожен проксі має адміністратора, який може замінити його реалізацію. Адміністрування проксі відокремлене від володіння контрактом і має бути передане належно керованій адресі. Оновлення може змінити поведінку навіть після того, як Пул зафіксував частину конфігурації. Тому користувачам слід оцінювати і власника Пулу, і адміністратора проксі.

Підтримка EIP-165 також залежить від конкретного контракту й не є універсальною. Її надають GiftableToken, три модулі котирування, OracleRelay, Limiter, кілька реєстрів та індексів, Splitter, EthFaucet, PeriodSimple і RescueVault. У v1.1.0 контракти SwapPool, SwapRouter, FeePolicy, ProtocolFeeController і CAT не надають supportsInterface.

Компоненти

  • GiftableToken — запас ERC20, карбування, спалювання та необов’язкова механіка строку дії. Емітент може використовувати екземпляр як ваучер, але сам контракт не визначає, що, ким, де й за якими умовами можна погасити.
  • SwapPool — сховище токенів і механізм розрахунку за обміном. Розгортання може під’єднати компоненти кураторства, оцінювання, комісій, лімітів і протокольної комісії або залишити підтримувані залежності неналаштованими.
  • DecimalQuoter, RelativeQuoter та OracleQuoter — взаємозамінні модулі оцінювання для десяткової паритетності, відносних курсів під керуванням власника або курсів, отриманих від оракула. OracleRelay може передавати один зовнішній потік даних до OracleQuoter.
  • FeePolicy і Limiter — необов’язкові правила комісій для пар і ліміти балансу Пулу для кожного токена.
  • ProtocolFeeController — необов’язкові змінні ставка, отримувач і стан протокольної комісії, які Пул може перевіряти під час розрахунку.
  • TokenUniqueSymbolIndex, AccountsIndex і ContractRegistry — компоненти пошуку токенів, облікових записів та адрес. CAT зберігає впорядковані вподобання облікового запису щодо токенів розрахунку.
  • SwapRouter — лише обчислює котирування з точною вхідною або вихідною кількістю за пропонованим маршрутом через кілька Пулів. Він не зберігає токени й не виконує обміни.
  • Splitter, EthFaucet, PeriodSimple і RescueVault — допоміжні засоби для розподілу, фінансування gas, обмеження частоти й відновлення активів.

Контракти можна поєднувати по-різному. Запис у реєстрі, котирування або шлях у графі не гарантує виконання транзакції. І далі мають значення поточна ліквідність, ліміти токенів, комісії, стан оракула, авторизація, строки, умови мережі й конфігурація кожного Пулу.