7 контрактних розробок, які допоможуть вам стати майстром DEX

robot
Генерація анотацій у процесі

Дивовижні хитрощі розробки контрактів

Нещодавно, під час вивчення процесу розробки децентралізованих бірж, я виявив кілька цікавих технік розробки контрактів. Ці техніки походять з вивчення коду відомої DEX, і мають бути корисними для новачків, які хочуть розпочати розробку смарт-контрактів.

Web3 новачок серії: маленькі поради з розробки контрактів, які я дізнався з коду Uniswap

Прогнозована адреса контракту

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

Можна створити контракт за допомогою методу CREATE2, додавши параметр salt, що дозволяє передбачити згенеровану адресу. Логіка обчислення нової адреси така: hash("0xFF", адреса творця, salt, initcode).

Web3 новачок серії: маленькі поради з розробки контрактів, які я дізнався з коду Uniswap

Розумне використання функцій зворотного виклику

У деяких сценаріях виклик методу контракту B з контракту A є дуже корисним. Наприклад, під час угоди контракт пулу викликає swapCallback, передаючи фактичну кількість токенів, що потрібно, а викликач у зворотному виклику передає токени. Це забезпечує цілісність та безпеку всієї логіки угоди.

Передача інформації за допомогою винятків

Під час оцінки угод можна обгорнути виконання методу swap у блок try-catch. Оскільки оцінка не призведе до фактичного обміну токенів, буде виникати помилка. Можна вивести спеціальну помилку в зворотному виклику, а потім захопити та проаналізувати необхідні дані з повідомлення про помилку. Таким чином, не потрібно спеціально модифікувати метод swap для потреб оцінки, логіка буде більш зрозумілою.

Web3 новачок серія: Малі поради з розробки контрактів, які я навчився з коду Uniswap

Велике число вирішує проблему точності

При обчисленні цін та ліквідності, щоб уникнути втрати точності в операціях ділення, можна спочатку зсунути вліво на 96 біт (, що еквівалентно множенню на 2^96), а потім виконати обчислення. Це дозволяє забезпечити точність без переповнення. Хоча теоретично все ще буде незначна втрата точності найменшої одиниці, в практичному застосуванні це є прийнятним.

Режим Share обчислення прибутку

При запису доходу від комісії LP не потрібно фіксувати кожну угоду для кожного LP, оскільки це буде споживати велику кількість Gas. Можна записувати лише загальну комісію та комісію, що належить за одиницю ліквідності, а під час вилучення LP обчислювати суму, яку можна вилучити, на основі утримуваної ліквідності. Схоже на принцип дивідендів у акціях.

Web3 новачок серії: Малі поради з розробки контрактів, які я дізнався з коду Uniswap

Зберігання даних поза ланцюгом

Не вся інформація потребує зберігання в блокчейні або отримання з нього. Списки торгових пулів, інформація про пул тощо можуть зберігатися в традиційних базах даних, синхронізуючись з блокчейном періодично. Це може підвищити ефективність доступу та знизити витрати. Звичайно, ключові транзакції все ще повинні здійснюватися в блокчейні.

Розподіл та повторне використання контракту

Можна розділити проект на кілька фактичних контрактів для розгортання або розділити код на кілька контрактів для обслуговування за допомогою успадкування. Також варто використовувати існуючі стандартні контракти, такі як ERC721 тощо, щоб підвищити ефективність розробки.

Немає нічого кращого, ніж практичний досвід, навіть якщо ти прочитав багато теорії. Спроба реалізувати спрощену версію DEX допоможе тобі глибше зрозуміти різні навички розробки контрактів. Сподіваюся, ці маленькі поради стануть тобі в нагоді на шляху розробки смарт-контрактів.

Серія для новачків Web3: маленькі хитрощі розробки контрактів, які я дізнався з коду Uniswap

UNI-7.35%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 8
  • Поділіться
Прокоментувати
0/400
CryptoGoldminevip
· 11год тому
Контракт є ключовим, стабільність забезпечує ROI
Переглянути оригіналвідповісти на0
DecentralizedEldervip
· 12год тому
Постійно застрягав у вивченні Solidity
Переглянути оригіналвідповісти на0
OnchainDetectivevip
· 12год тому
Дійсно добре, спочатку код, потім ривок!
Переглянути оригіналвідповісти на0
HalfBuddhaMoneyvip
· 12год тому
Цими кількома хитрощами можна надійно отримувати прибуток з DEX.
Переглянути оригіналвідповісти на0
GasFeeVictimvip
· 12год тому
Вивчіть лише одну адресу прогнозу, цього достатньо.
Переглянути оригіналвідповісти на0
0xSleepDeprivedvip
· 12год тому
Розробникам обов'язково до прочитання!! Це!!!
Переглянути оригіналвідповісти на0
StrawberryIcevip
· 12год тому
Розробник-новачок, розглянь базові моменти.
Переглянути оригіналвідповісти на0
LightningPacketLossvip
· 13год тому
Знову новачок питає, як почати.
Переглянути оригіналвідповісти на0
  • Закріпити