içinde

Uniswap Kullanımında Sıkça Karşılaşılan Hatalar

Uniswap, Ethereum ağı üzerine kurulu, merkeziyetsiz bir borsadır (DEX).

Öncelikle Uniswap’ın ne olduğunu ne nasıl kullanıldığını bilmiyorsanız bu yazımıza göz atmanızı öneririz: Uniswap Nedir ve Nasıl Kullanılır?

UniswapV2: K

Bu, sıkça karşılaşılan bir hatadır ve anlamak için biraz bağlama ihtiyaç duyulur.

Uniswap sabit çarpım formülü “X * Y = K” şeklindedir. X ve Y, iki ERC-20 token’ının ilgili rezerv bakiyelerini temsil ederken, “K” rezervlerin ürününü temsil eder. “K” hatası karşınıza çıkarsa K’nın anlamı budur.

Kısaca, “K” hatası, işlem çiftinde bir şekilde olması gerekenden daha az rezervle bırakan bir trade’in denendiği ve sonuç olarak işlemin gerçekleşemediği anlamına gelir.

Bunun birkaç farklı nedeni olabilir.

Transfer Edilen Token’lardan Alınan Ücretler

En yaygın örneklere “transfer ücreti” belirteçleri neden olur.

Transfer Edilen Token’lara Dahil Edilen Ücret

Çoğu durumda, her transfer edilen token miktarının küçük bir bölümünü yakar veya yönlendirir, öyle ki, transferin alıcısı, gönderenin yolladığından biraz daha azını teslim alır. Buna transferde “dahil” ücret denir.

Transfer edilen token’lara ücretin dahil olması durumunda, “SupportingFeeOnTransfer” ile biten yönlendirici sözleşmesinde karşılık gelen swap işlevlerini kullanabilirsiniz. Bu işlevler, sabiti hesaplarken gönderen miktar yerine alıcı miktarını kontrol etmek için “amountOutMin” parametresini ayarlayarak yardımcı olur.

Transfer Edilen Token’larda Dahil Edilmeyen, Ekstra Alınan Ücret

Bir diğer tür olan, transfer edilen token’larda “dahil edilmeyen” ekstra ücret, birincil transferden sonra gönderenin adresinden ek bir transfer göndererek işlemektedir. Router nedeniyle sözleşme, sabiti hesaplarken bu sondaki aktarımı öngörememesinden dolayı, işlem ya tamamlanamaz ve geri döner ya da birincil aktarımı göndererek ancak son aktarımdaki havuzu kırarak kısmen başarılı olur.

Transfer edilen token’larda ekstra ücret olması durumunda, SupportingFeeOnTransfer işlevleri çalışabilir, ancak router’ı temelden bozacak, etkisiz hale getirecek şekilde tasarlanmış bazı token’lar olacaktır. Bu işlevleri kullanırken hala “K” hatası alıyorsanız, token standardına uygun yönlendirici sözleşmesinin fork’unu yapmanız gerekebilir.

Rebasing Token’lar

“K” hatası kadar yaygın olmasa da rebasing token’lar nedeniyle oluşan hatalar mevcut.

Rebasing token’lar, artan veya azalan yani değişken bir dolaşım arzına sahip kripto varlıklarıdır. Piyasa değerinin artmasında veya azalmasında, artan arz oranı kadar token holder’larına dağıtılır.

Rebasing token’lar iki şekilde çalışır.

Negatif Rebasing Token’lar

Daha yaygın olan negatif rebasing token’lar, token sahiplerinin bakiyelerini eksiltir. Rebasing, swap’lar veya transfer işlemleri tarafından tetiklenmediğinden dolayı, router, rebasing ne zaman veya nasıl olacağını bilemez. Bir kez gerçekleştiğinde, işlem çifti rezervleri dengesiz olacak ve işlem çifti ile işlem yapacak bir sonraki kullanıcı, rebasing’in bir sonucu olarak deltanın maliyetini üstlenecektir.

Negatif rebasing token’lar, Uniswap yönlendirici sözleşmesini içeren her işlemin sonunda işlem çiftinde senkronizasyon için token sözleşmelerini değiştirerek bu hatayı çözmüş durumda. Router sözleşmesini fork’lamakla ilgilenenler, negatif rebasing token’larının, token sözleşmeleri yeni yönlendiricinizi barındıracak şekilde güncellenene kadar çifti bozacağını tahmin etmelidir.

Pozitif Rebasing Token’lar

Pozitif rebasing token’lar, token sahiplerinin bakiyelerini keyfi olarak artırır. Pozitif bir rebasing oluştuğunda, ticaret çiftinde hesaba katılmayan bir fazlalık yaratır. Fazla token’lar işlem çiftinde hesaba katılmadığından, herkes işlem çiftinde skim()’i kullanabilir ve yeniden dengelemeden doğan pozitif farktan yararlanabilir.

Pozitif rebasing, Uniswap’ın herhangi bir işlevselliğini bozmasa da bunlarla ilgilenenler, herhangi bir işlem çiftinde bulunan pozitif bakiyenin ücretsiz olarak alınabileceğini bilmelidir.

Rebasing Token’lar Hakkında Uyarı

Rebasing token’ı oluşturmakla ilgilenenler için bir uyarı: merkeziyetsiz trade ve likidite sağlamayı içeren birçok sözleşme, token’ınızla etkileşime girdikten sonra geçersiz olacaktır.

UniswapV2: LOCKED (Kilitli/Kilitlendi)

LOCKED hatası, özelleştirilmiş ve borsaya tekrar giren sözleşmelerinin bir işlemin sonunda kötü amaçlı kodlar nedeniyle sözleşmenin çalışmasını engellemeyi hedefleyen bir korumadır.

Henüz bu hatanın bir çözümü yok. Fork’u yeniden başlatarak ve MetaMask’ı reset’leyerek geçici bir çözüm olabilir.

Arşiv Düğümüne (Archive Node) Erişimin Olmaması

Bu, Metamask veya Ganache-CLI ile ilgili bir hatadır. Genellikle yerel bir fork başlatıldıktan ve sözleşmeler dağıtıldıktan sonra oluşur.

Fork’u yeniden başlatarak ve MetaMask’ı reset’leyerek geçici bir çözüm olabilir.

UniswapV2: TRANSFER_FAILED

Bu, ana sözleşmenin alıcıya token’I gönderemediği anlamına gelir. Bu, büyük olasılıkla, token sahibinin transferine, kullanıcıların token’I satın almasına, token kontratında kullanıcının token’ı almasına ancak satmasına izin vermeyecek şekilde düzenlemiş kötü niyetli kişilerin dolandırıcılık (scam) token’larından kaynaklanabilir.

UniswapV2: EXPIRED (Süresi Dolmuş)

Bu, işlem onayı beklenirken işlemin çok uzun sürmesi durumunda meydana gelir.

Uniswap, doğal olarak işlem ücretlerini (gaz ücreti – gas fee) belirlemez, bu nedenle çoğu kullanıcı varsayılan olarak MetaMask’ta önerilen gaz ücretlerini kullanır. Bazen MetaMask bü ücreti yanlış hesaplayabilir ve gaz fiyatını çok düşük gösterebilir. Bir swap’ın gerçekleştirilmesi 20 dakikadan daha fazla sürerse, ana sözleşme işlemin gerçekleşmesine izin vermez.

Action Requires an Active Reserve

Eylem Etkin Yedek Gerektiriyor hatası;

Bu, potansiyel olarak flaş swap’lar üzerinde çalışırken karşılaşılan bir ganache hatasıdır. Kaynağı hala araştırılıyor.

Ön Yüzde İşlemin Onaylanamaması

Kullanıcılar, Uniswap ön yüzünde bir token’ın onaylayamadığı nadir durumlarla karşılaşabilirler.

Bu, bazı token’ların sözleşmelerinin, front run’ları engellemeye ve bir kullanıcı token’larını çalmaya çalışan kötü niyetli sözleşmelere karşı tedbirler almasının bir sonucudur.

Çözüm; kullanıcının yönlendirici sözleşme onay miktarını manuel olarak sıfıra ve ardından istediği miktara düzenlemesiyle çözülebilir. Bunu yapmanın en kolay yolu da Etherscan’dır.

Kaynak: Uniswap Docs

Kriptoparalar ve blockchain hakkındaki her türlü sorunuz için telegram kanalımıza davetlisiniz. Kanala katılmak için tıklayınız.

Garen Varjabetoğlu tarafından yazıldı.

Fransa'da, Nice Sophia Antipolis Üniversitesi'nde Ekonomi-Yönetim bölümünden mezun oldum. Fransızca ve İngilizce dillerine hâkimim. Bir süre özel sektörde çalıştıktan sonra, blokzinciri teknolojisiyle tanıştım ve kendimi bu alanda geliştirmekteyim.

Ethereum (ETH), Cardano (ADA) ve Cosmos (ATOM) Teknik Analizleri I 08.07.2022

OxsKYT Nedir?