Skip to main content

Referencia chybových kódov BiatecCLAMM

Tento dokument poskytuje komplexnú referenciu všetkých chybových kódov používaných v systéme smart kontraktov BiatecCLAMM. Pochopenie týchto chybových kódov pomôže vývojárom debugovať problémy a poskytovať lepšie používateľské skúsenosti.

Referencja kodów błędów BiatecCLAMM

Ten dokument zawiera kompleksową referencję wszystkich kodów błędów używanych w systemie smart kontraktów BiatecCLAMM. Zrozumienie tych kodów błędów pomoże deweloperom debugować problemy i zapewniać lepsze doświadczenia użytkowników.

Format kodu błędu

Kody błędów śledzą spójny format:

  • Krótkie kody: 3-4 znakowe kody z prefiksem E_ lub ERR-
  • Przykład: E_CONFIG, ERR-LOW-VER

Błędy podstawowych kontraktów

BiatecClammPool

Błędy konfiguracji i inicjalizacji

KodOpisPrzyczynaRozwiązanie
E_CONFIGNiespójność aplikacji konfiguracyjnejPodane config app ID nie odpowiada zarejestrowanemu configZweryfikuj prawidłową referencję config app
E_UPDATERNieautoryzowany updaterNadawca nie jest autoryzowanym adresem updaterUżyj prawidłowego konta updater
E_SENDERNieautoryzowany nadawcaNadawca nie jest autoryzowany do tej operacjiUżyj autoryzowanego konta (twórca, executive, itp.)
E_PRICE_MAXBootstrap już został wywołanyNie można bootstrapować dwukrotniePula już jest zainicjalizowana
E_PRICENieprawidłowa cenaCena musi być większa niż zeroUstaw prawidłowe wartości cenowe
E_FEEBootstrap już jest zakończonyOpłata już jest ustawiona, nie można bootstrapować ponowniePula już jest zainicjalizowana
E_PAUSEDUsługi wstrzymaneProtokół jest obecnie wstrzymany przez adminaPoczekaj na unpause lub skontaktuj się z adminem
E_STAKING_PRICENieprawidłowa cena puli stakingowejSame-asset pule wymagają płaskiego zakresu cenowegoUstaw priceMin === priceMax dla pul stakingowych
E_PRICE_RANGENieprawidłowy zakres cenowyStandardowe pule wymagają priceMin < priceMaxUżyj rozszerzających granic cenowych
E_ASSET_ORDERNieprawidłowa kolejność aktywówAsset A musi być mniejszy niż Asset BZapewnij assetA.id < assetB.id

Błędy płynności i bilansów

KodOpisPrzyczynaRozwiązanie
E_ZERO_LIQZerowa płynnośćPłynność jest zero przed dzieleniemZapewnij, że pula ma płynność
E_ZERO_DENOMZerowy mianownikMianownik w kalkulacji jest zeroSprawdź parametry wejściowe
ERR-LIQ-DROPPrzekroczony spadek płynnościPłynność spadła więcej niż dozwoloneSprawdź błędy zaokrąglania lub niespójność stanu
ERR-TOO-MUCHNadmierna wypłataPróba wypłaty więcej niż dostępneZmniejsz ilość wypłaty
ERR-BALANCE-CHECK-1Sprawdzenie bilansów nie powiodło się (Asset A)Bilans Asset A niespójnySprawdź stan puli
ERR-BALANCE-CHECK-2Sprawdzenie bilansów nie powiodło się (Asset B)Bilans Asset B niespójnySprawdź stan puli

Błędy tożsamości i weryfikacji

KodOpisPrzyczynaRozwiązanie
ERR-INVALID-CONFIGNieprawidłowa aplikacja configConfig app nie odpowiada zarejestrowanemu config puliUżyj prawidłowej referencji config app
ERR-WRONG-IDENTNieprawidłowy dostawca tożsamościDostawca tożsamości nie odpowiada configUżyj prawidłowego dostawcy tożsamości
ERR-USER-LOCKEDKonto użytkownika zablokowaneKonto użytkownika jest zablokowane przez dostawcę tożsamościSkontaktuj się z wsparciem w celu odblokowania
ERR-LOW-VERKlasa weryfikacji zbyt niskaKlasa weryfikacji użytkownika poniżej minimumUkończ wymaganą weryfikację KYC
ERR-HIGH-VERKlasa weryfikacji poza granicamiKlasa weryfikacji przekracza maksimum (4)Sprawdź dane dostawcy tożsamości

Błędy swap

KodOpisPrzyczynaRozwiązanie
E_ASSET_ANieprawidłowy Asset AAsset A nie odpowiada Asset A puliUżyj prawidłowego aktywa
E_ASSET_BNieprawidłowy Asset BAsset B nie odpowiada Asset B puliUżyj prawidłowego aktywa
Swaps not allowed in staking poolsPróba swap w puli stakingowejNie można swapować w pulach same-assetUżyj add/remove liquidity zamiast
Minimum to receive is not metUruchomiona ochrona przed slippageWyjście mniej niż minimumToReceiveZwiększ tolerancję slippage lub spróbuj ponownie

BiatecConfigProvider

KodOpisPrzyczynaRozwiązanie
Only addressUdpater setup in the config can update applicationNieautoryzowana próba updateNadawca nie jest updaterUżyj autoryzowanego adresu updater
E_PAUSEDUsługi wstrzymaneProtokół wstrzymany globalniePoczekaj na admina na unpause

BiatecIdentityProvider

KodOpisPrzyczynaRozwiązanie
Configuration app does not matchNiespójność configPodany config nie odpowiada zarejestrowanemuUżyj prawidłowej aplikacji config
Only addressUdpater setup in the config can update applicationNieautoryzowany updateNie jest autoryzowanym updaterUżyj konta updater
ERR_PAUSEDUsługi wstrzymaneProtokół obecnie wstrzymanyPoczekaj na unpause
FeeMultiplierBase must be set properlyNieprawidłowy mnożnik opłatMnożnik opłat musi równać SCALEUstaw feeMultiplierBase na SCALE (1000000000)
Verification class out of boundsNieprawidłowa klasa weryfikacjiKlasa musi być 0-4Użyj prawidłowej klasy weryfikacyjnej

BiatecPoolProvider

KodOpisPrzyczynaRozwiązanie
E_CONFIGNiespójność configPodany config nie odpowiada zarejestrowanemuUżyj zarejestrowanej aplikacji config
Configuration app does not matchNiespójność aplikacji configPodana nieprawidłowa aplikacja configZweryfikuj ID aplikacji config
Only addressUdpater setup in the config can update applicationNieautoryzowany updateNadawca nie jest autoryzowanym updaterUżyj konta updater
ERR_PAUSEDUsługi wstrzymaneProtokół jest wstrzymanyPoczekaj na akcję admin
Pool already registeredDuplikacja rejestracji puliPula lub config już istniejeSprawdź istniejące pule

Powszechne scenariusze błędów

Niepowodzenia tworzenia puli

Błąd: E_STAKING_PRICE

Przyczyna: Tworzenie puli stakingowej (assetA === assetB) z priceMin !== priceMax
Rozwiązanie: Dla pul stakingowych ustaw priceMin = priceMax = 1000000000 (SCALE)

Błąd: E_CONFIG w deployPool

Przyczyna: Próba deploy puli z niezarejestrowaną aplikacją config
Rozwiązanie: Użyj kanonicznej aplikacji config zarejestrowanej z dostawcą puli

Niepowodzenia swap

Błąd: ERR-LOW-VER

Przyczyna: Klasa weryfikacji użytkownika niewystarczająca dla wymagań puli
Rozwiązanie: Ukończ dodatkową weryfikację KYC/identity aby zwiększyć klasę

Błąd: Swaps not allowed in staking pools

Przyczyna: Próba swap w puli stakingowej B-ALGO lub B-USDC
Rozwiązanie: Użyj distributeExcessAssets dla nagród, tylko add/remove liquidity

Błąd: Minimum to receive is not met

Przyczyna: Cena poruszyła się niekorzystnie podczas transakcji, uruchomiona ochrona slippage
Rozwiązanie: Zwiększ tolerancję minimumToReceive lub poczekaj na lepszą cenę

Niepowodzenia zapewniania płynności

Błąd: E_ZERO_LIQ

Przyczyna: Próba operacji gdy pula ma zerową płynność
Rozwiązanie: Najpierw zainicjalizuj pulę z płynnością

Błąd: ERR-LIQ-DROP

Przyczyna: Kalkulacja płynności doprowadziła do niedopuszczalnego spadku
Rozwiązanie: Sprawdź błędy kalkulacyjne lub problemy z zaokrąglaniem

Niepowodzenia operacji administracyjnych

Błąd: E_UPDATER lub E_SENDER

Przyczyna: Próba wykonania funkcji admin bez prawidłowej autoryzacji
Rozwiązanie: Użyj wyznaczonego konta admin (addressUpdater, addressExecutiveFee, itp.)

Błąd: E_PAUSED

Przyczyna: Wstrzymanie protokołu jest aktywne
Rozwiązanie: Poczekaj na admina na unpause usług, lub skontaktuj się z zarządem protokołu

Sprawdzone praktyki obsługi błędów

Dla deweloperów

  1. Zawsze sprawdzaj Config: Zapewnij, że wszystkie referencje aplikacji (config, identity, pool provider) są prawidłowe
  2. Waliduj wejścia: Sprawdź ID aktywów, ilości i parametry slippage przed wysłaniem
  3. Obsługuj stan wstrzymania: Sprawdź, czy protokół jest wstrzymany przed próbą operacji
  4. Używaj Try-Catch: Opakuj wywołania kontraktów w try-catch i parsuj komunikaty błędów
  5. Loguj błędy: Loguj pełny kontekst błędu dla debugowania

Dla użytkowników

  1. Weryfikacja tożsamości: Zapewnij, że Twoje konto ma wystarczającą klasę weryfikacji
  2. Tolerancja slippage: Ustaw odpowiednią ochronę slippage dla zmiennych rynków
  3. Typ puli: Zrozum różnicę między pulami płynności a pulami stakingowymi
  4. Stan konta: Zweryfikuj, że Twoje konto nie jest zablokowane przed transakcjami

Wskazówki debugowania

Znajdowanie kontekstu błędu

Gdy wystąpi błąd:

  1. Sprawdź logi transakcyjne: Użyj indeksatora Algorand do wyświetlenia szczegółów transakcji
  2. Zweryfikuj referencje aplikacji: Zapewnij, że wszystkie ID aplikacji odpowiadają oczekiwanym wartościom
  3. Sprawdź stan globalny: Przeczytaj stan globalny aplikacji config/identity/pool
  4. Sprawdź pamięć box: Zweryfikuj, że referencje box są włączone w transakcji
  5. Przejrzyj ostatnie zmiany: Sprawdź, czy protokół był ostatnio aktualizowany lub wstrzymany

Powszechne błędne konfiguracje

  • Nieprawidłowa aplikacja Config: Użycie config testnet na mainnet lub odwrotnie
  • Brakujące referencje box: Zapomnienie włączenia wymaganych referencji box
  • Nieprawidłowa kolejność aplikacji: Aplikacje muszą być w prawidłowej kolejności w tablicy foreign apps
  • Niewystarczające opłaty: Niewystarczające opłaty dla złożonych operacji wymagających zwiększenia budżetu opcode

Odzyskiwanie z błędów

Dla błędów odwracalnych

Większość błędów jest odwracalna poprzez naprawę problemu i powtórzenie:

  • Weryfikacja tożsamości: Ukończ wymagane KYC
  • Błędy config: Użyj prawidłowych referencji aplikacji
  • Slippage: Dostosuj tolerancję i spróbuj ponownie
  • Wstrzymanie: Poczekaj na przywrócenie usług

Dla błędów nieodwracalnych

Niektóre błędy wymagają interwencji admin:

  • Konto zablokowane: Skontaktuj się z dostawcą tożsamości
  • Protokół wstrzymany: Poczekaj na decyzję zarządu
  • Błędy kontraktu: Zgłoś deweloperom

Wsparcie

Jeśli napotkasz błąd, który nie jest udokumentowany tutaj lub potrzebujesz pomocy:

  1. GitHub Issues: Otwórz issue z pełnymi szczegółami błędu
  2. Dokumentacja: Sprawdź folder docs/ dla przewodników
  3. Raporty audytu: Przejrzyj folder audits/ dla znanych problemów
  4. Społeczność: Dołącz do kanałów społeczności dla wsparcia

Ostatnia aktualizacja: 2025-10-28 Wersja: 1.0 Zarządzane: Zespół BiatecCLAMM