Szczegółowa informacja na temat wprowadzonego mechanizmu śledzenia kontraktow w protokole HOLY — by Anton Mozgovoy

Stakenode - Polkadot Validator
3 min readNov 16, 2020

--

„Na pierwszy rzut oka mieliśmy proste zadanie śledzenia wszystkich poprzednich i przyszłych wydarzeń związanych z naszym kontraktem HolyKnight LP. Powinno być proste, prawda? To tylko ponad 8 000 transakcji i ponad 20 000 zdarzeń. Jak się okazuje, to proste zadanie okazało się niezwykle przydatne w analizie innych strategii dla Public Vault. Ale uporządkujmy wszystko.”

Gdzie zaczęliśmy

Po głosowaniu społeczności, przystąpiliśmy do planu opracowania zautomatyzowanego analizatora danych wydarzeń w łańcuchu, który śledziłby wszystkie zmiany stawek bonusowych zgodnie ze zmianą tokenomiki.

Zasady dodatkowego stosowanego bonusu są proste:

- Każda wpłata liczy się jako osobne wydarzenie. Oznacza to, że może istnieć jeden depozyt z jednym mnożnikiem i drugi depozyt z innym.

- Dynamiczne liczenie z retrospekcją, czy określony depozyt osiągnął mnożnik premii.

- Harvesting (zbieranie nagród) nie wpływa na warunki depozytu.

Jednocześnie musieliśmy mieć na uwadze następujące skrajne przypadki:

- Awaryjne transakcje wypłaty (EmergencyWithdraw) — to rodzaj transakcji, która pozwala na zwrot środków użytkownika, nawet jeśli w kontrakcie jest poważna wada. Dobrą praktyką jest włączenie tej metody, ponieważ naszym kluczowym aspektem jest stabilność i bezpieczeństwo. W związku z ostatnimi wydarzeniami, takimi jak Harvest Finance, Akropolis i Value Finance, coraz trudniej jest zbudować odporną usługę DeFi.

- Zmiana wagi nagród w puli. Zmieniając stawki nagród w przeszłości, musieliśmy upewnić się, że wszystkie przeliczenia są prawidłowe, ponieważ niektórzy użytkownicy obstawiają stawki od 28 września (pierwszego dnia!).

- Łącznie 10 Liquidity Pools, w tym HOLY-ETH i złożona konwersja yCRV na yUSD z logiką skarbca.

Ponadto istnieją teraz zewnętrzne kontrakty Zap, kontrakt Argent: Relayer, Proxy contracts i tak dalej, które również współdziałają z naszym kontraktem LP. Mówiąc prościej, mają różne ABI, więc sprawdzenie, czy premie są liczone we właściwy sposób, jest długim i trudnym procesem poprzez zarządzanie wydarzeniami.

Powrót do korzeni. Analiza fundamentalna

Zaczęliśmy od prostego zadania, szybko zetknęliśmy się z wyrafinowaną logiką naszego licznika premii, która w rzeczywistości może służyć większej potrzebie. Więc zaczęliśmy analizować dalej.

W ciągu kilku pierwszych kont testowych zdaliśmy sobie sprawę, że złożoność liczenia mnożników, zwłaszcza jeśli transakcja ma miejsce jako zdarzenie w innym kontrakcie, nie postępuje liniowo pod względem złożoności. Oto prosty przypadek z 2 depozytami, 1 wypłatą (i zbiorami).

I staje się to tylko trudniejsze, ponieważ istnieją scenariusze, w których użytkownicy mieliby więcej niż 20 wydarzeń obejmujących stejkowanie, wycofywanie i harvesting.

Wdrożyliśmy kilka zmian w panelu.

  • Obecnie pokazuje całkowitą liczbę nagród HOLY zgromadzonych w portfelu, a także całkowitą skumulowaną kwotę premii HOLY, którą będzie można odebrać po zakończeniu programu. Pokazuje również średni mnożnik premii (ponieważ różne depozyty mogą mieć różne mnożniki).

- Pulpit nawigacyjny pokazuje teraz również zagregowane saldo we wszystkich poolach postawionych na jednej stronie — dzięki czemu łatwiej jest śledzić portfel.

Na powyższym zrzucie ekranu portfel miał historię obstawiania yCRV, ale na razie ma tylko tokeny YFI-ETH UNI V2 LP, dlatego dashboard pokazuje to jako saldo oczekujące wraz z mnożnikiem. Ponieważ ostatnia wpłata miała miejsce 27 października, ten portfel jest tylko 3 dni od otrzymania premii mnożnikowej 3x.

P.S. Transakcje depozytowe na kwotę 0,0000 to transakcje Harvest. Oznacza to, że zebrałeś swoje HOLY jako nagrody z dotychczasowego stejkingu

Na koniec pokazuje również historię wpłat i wypłat z nagromadzonym HOLY i nagrodami za ten konkretny okres obstawiania.

Jednak po tych wszystkich zmianach pomyśleliśmy: czy można zmodyfikować i ponownie wykorzystać to narzędzie do śledzenia innych agregatorów wydajności w łańcuchu? Czy narzędzie, które nigdy nie było planowane, może zaspokoić większe potrzeby w naszym głównym produkcie?

Oficjalne źródło publikacji:

https://medium.com/holyheld/in-depth-contract-tracking-4fc369beaf81

--

--

Stakenode - Polkadot Validator
Stakenode - Polkadot Validator

Written by Stakenode - Polkadot Validator

Stakenode is a Independent Polkadot and Kusama Validator

No responses yet