1. Anasayfa
  2. 100 Günde Solidity

🧵 #100GündeSolidity 083– DeFi : Uniswap V2 Add Remove Liquidity

🧵 #100GündeSolidity 083– DeFi : Uniswap V2 Add Remove Liquidity
Uniswap V2 Add Remove Liquidity
0

Uniswap V2 Add Remove Liquidity

Merhaba,

Bu e-bültenimizde Uniswap V2 platformunda likidite ekleme ve çıkarma işlemlerinin nasıl yapılacağına dair ayrıntılı bir rehber sunacağız. Uniswap V2, Ethereum blok zinciri üzerinde bir merkeziyetsiz borsa (DEX) olarak hizmet veren bir protokoldür. Bu borsada, token sahipleri tokenleri ile ETH arasında takas yapabilirler. Ancak, bir borsanın likiditesi ne kadar yüksekse, kullanıcılar için o kadar faydalıdır. Bu nedenle, Uniswap V2’de likidite yönetimi oldukça önemlidir. Bu e-bültenimizde, likidite kavramı, likidite ekleme ve çıkarma işlemleri, ve likidite yönetimi ipuçları hakkında ayrıntılı bilgiler bulacaksınız.

Uniswap V2 Nedir?

Uniswap V2, Ethereum blok zinciri üzerinde bir merkeziyetsiz borsa (DEX) olarak hizmet veren bir protokoldür. Uniswap V2, likidite sağlayıcıları ve kullanıcılar arasında tokenlerin takas edilmesini sağlar. Uniswap V2, likidite havuzları adı verilen bir sistem kullanarak token takaslarını gerçekleştirir. Bu sistem, likidite sağlayıcılarına tokenleri ve ETH’yi likidite havuzuna yatırmalarını ve bu havuzda tutmalarını sağlar. Bu şekilde, kullanıcılar herhangi bir tokeni ETH ile takas etmek istediklerinde, likidite havuzundan bu tokeni alabilirler. Uniswap V2, Ethereum blok zincirindeki akıllı sözleşmeleri kullanarak, merkeziyetsiz bir borsa işlemi gerçekleştirir. Bu sayede, kullanıcılar bir aracıya ihtiyaç duymadan token takasları yapabilirler.

Likidite Nedir ve Neden Önemlidir?

Likidite, bir varlığın piyasadaki kolaylıkla alınıp satılabilirliği olarak tanımlanabilir. Bir piyasanın likiditesi, o piyasada işlem gören varlıkların ne kadar hızlı ve kolay bir şekilde nakde çevrilebileceğini gösterir. Yüksek likidite, alıcıların ve satıcıların kolayca işlem yapmalarına ve fiyatların hızla değişmesine olanak tanır.

Likidite, bir borsa için de önemlidir. Yüksek likidite, borsada yapılan işlemlerin daha hızlı gerçekleşmesini ve daha az fiyat dalgalanması olmasını sağlar. Ayrıca, yüksek likiditeye sahip bir borsa, kullanıcılar için daha düşük işlem maliyetleri ve daha iyi fiyatlandırma imkanı sunar. Bu nedenle, Uniswap V2’de likidite yönetimi oldukça önemlidir. Likidite sağlayıcıları, likidite havuzlarına token ve ETH yatırarak, borsada işlem hacmini artırır ve kullanıcıların daha hızlı ve daha ucuz işlem yapmalarına olanak tanır.

Uniswap V2’de Likidite Ekleme İşlemi Nasıl Yapılır?

Uniswap V2’de likidite ekleme işlemi, bir tokeni ETH ile eşleştirerek likidite havuzuna yatırmak suretiyle gerçekleştirilir. Aşağıdaki adımları izleyerek likidite ekleme işlemini tamamlayabilirsiniz:

  1. Uniswap V2 sitesine gidin ve cüzdanınıza bağlanın.
  2. Havuzda mevcut olmayan bir token eklemek istiyorsanız, bu tokeni cüzdanınızda bulundurmanız gerekir.
  3. “Pool” sekmesine tıklayın ve “Add Liquidity” butonuna basın.
  4. Yatırmak istediğiniz token ve ETH miktarını girin.
  5. Uniswap V2, yatırmak istediğiniz miktarları ve mevcut fiyatları gösterecektir. Onayladığınızda, cüzdanınızdan onay vermeniz istenecektir.
  6. Yatırdığınız token ve ETH miktarı, likidite havuzunda eşit olarak dağıtılacaktır. Böylece, diğer kullanıcılar sizin tokeninizi ETH ile takas etmek istediklerinde, likidite havuzundan tokeni alabilirler.

Likidite sağlayıcıları, likidite havuzunda tuttukları token ve ETH’ye göre bir pay alırlar. Bu pay, kullanıcıların işlemlerinde likidite havuzundan aldıkları işlem ücretlerinden kesilir ve likidite sağlayıcılarına dağıtılır.

Uniswap V2’de Likidite Çıkarma İşlemi Nasıl Yapılır?

Uniswap V2’den likidite çıkarma işlemi, likidite sağlayıcılarının havuzdaki tokenlerini geri çekmeleriyle gerçekleştirilir. Aşağıdaki adımları izleyerek likidite çıkarma işlemini tamamlayabilirsiniz:

  1. Uniswap V2 sitesine gidin ve cüzdanınıza bağlanın.
  2. “Pool” sekmesine tıklayın ve “Manage” butonuna basın.
  3. Yatırdığınız tokenleri ve ETH’yi görebileceğiniz bir sayfa açılacaktır.
  4. Likidite çıkarmak istediğiniz token ve ETH miktarını girin.
  5. Uniswap V2, çıkarmak istediğiniz miktarları ve mevcut fiyatları gösterecektir. Onayladığınızda, cüzdanınızdan onay vermeniz istenecektir.
  6. Token ve ETH miktarınız, likidite havuzundaki payınızla orantılı olarak azalacaktır. Uniswap V2, tokenlerinizi ve ETH’nizi cüzdanınıza geri gönderecektir.

Likidite sağlayıcıları, likidite çıkarma işlemi sırasında belirli bir ücret ödemek zorundadırlar. Bu ücret, havuzun likiditesini korumak ve kullanıcılara hizmet vermeye devam etmek için kullanılır. Bu nedenle, likidite sağlayıcılarının likidite çıkarma işlemi yapmadan önce havuzdaki kârlılık ve maliyetleri dikkatlice değerlendirmeleri önerilir.

Uniswap V2’de Likidite Yönetimi İpuçları ve Püf Noktaları

Uniswap V2’de likidite yönetimi, kullanıcılar için önemli bir konudur. Likidite sağlayıcıları, likidite havuzlarına yatırdıkları tokenlerin ve ETH’nin güvenliğini sağlamak için bazı ipuçları ve püf noktaları izleyebilirler:

  1. Havuza yatırdığınız tokenlerin miktarını dengede tutun. Bir tokenin fiyatı yükselirse, havuzda o tokena ait likidite oranı azalabilir ve diğer tokenlara göre havuzdaki payı düşebilir. Bu nedenle, fiyat dalgalanmalarına karşı korunmak için token miktarını dengede tutmak önemlidir.
  2. Havuza yatıracağınız tokenleri seçerken, işlem hacimleri yüksek ve talep gören tokenleri tercih edin. Bu, likiditenin artmasına ve işlem ücretlerinin yüksek olmasına yardımcı olacaktır.
  3. Havuzdaki tokenlerinizi belirli aralıklarla güncelleyin. Tokenlerin fiyatlarındaki dalgalanmalar nedeniyle, likidite havuzlarında bulunan token miktarları dengeli kalmalıdır. Bu nedenle, likidite sağlayıcıları zaman zaman havuzlarındaki tokenleri güncellemelidirler.
  4. Havuzunuzun likiditesini takip edin. Likidite sağlayıcıları, havuzlarının likiditesini takip etmeli ve yeterli olmadığını düşündükleri durumlarda yeni tokenler eklemeli veya mevcut tokenleri artırmalıdırlar.
  5. Likidite çıkarma işlemini yapmadan önce, likidite sağlayıcısı olarak havuzdaki kârlılık ve maliyetleri dikkatlice değerlendirin. Likidite çıkarma işlemi, havuzdaki kârlılığı azaltabilir ve maliyetleri artırabilir. Bu nedenle, likidite sağlayıcıları, havuzdaki kârlılığı ve maliyetleri dikkatlice değerlendirmelidirler.
  6. Havuzunuzun güvenliği için uygun güvenlik önlemlerini alın. Cüzdanlarınızı ve özel anahtarlarınızı güvende tutmak için en son güvenlik önlemlerini uygulayın ve kimlik avı girişimlerine karşı dikkatli olun.

Bu ipuçları ve püf noktaları, likidite sağlayıcılarının Uniswap V2’deki likidite yönetimini daha verimli ve güvenli hale getirmelerine yardımcı olabilir.

Akıllı Sözleşme Örneği İNCELEME

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

contract TestUniswapLiquidity {
    address private constant FACTORY = 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f;
    address private constant ROUTER = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address private constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    function addLiquidity(
        address _tokenA,
        address _tokenB,
        uint _amountA,
        uint _amountB
    ) external {
        IERC20(_tokenA).transferFrom(msg.sender, address(this), _amountA);
        IERC20(_tokenB).transferFrom(msg.sender, address(this), _amountB);

        IERC20(_tokenA).approve(ROUTER, _amountA);
        IERC20(_tokenB).approve(ROUTER, _amountB);

        (uint amountA, uint amountB, uint liquidity) = IUniswapV2Router(ROUTER)
            .addLiquidity(
                _tokenA,
                _tokenB,
                _amountA,
                _amountB,
                1,
                1,
                address(this),
                block.timestamp
            );
    }

    function removeLiquidity(address _tokenA, address _tokenB) external {
        address pair = IUniswapV2Factory(FACTORY).getPair(_tokenA, _tokenB);

        uint liquidity = IERC20(pair).balanceOf(address(this));
        IERC20(pair).approve(ROUTER, liquidity);

        (uint amountA, uint amountB) = IUniswapV2Router(ROUTER).removeLiquidity(
            _tokenA,
            _tokenB,
            liquidity,
            1,
            1,
            address(this),
            block.timestamp
        );
    }
}

interface IUniswapV2Router {
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
}

interface IUniswapV2Factory {
    function getPair(address token0, address token1) external view returns (address);
}

interface IERC20 {
    function totalSupply() external view returns (uint);

    function balanceOf(address account) external view returns (uint);

    function transfer(address recipient, uint amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint amount
    ) external returns (bool);
}

Bu akıllı sözleşme, Uniswap V2’de likidite ekleme ve çıkarma işlemleri yapmak için kullanılır. Bu işlemleri gerçekleştirmek için Uniswap V2 yönlendiricisi (ROUTER), Uniswap V2 fabrikası (FACTORY) ve Wrapped Ether (WETH) adresleri tanımlanmıştır.

Sözleşme, iki fonksiyon içerir: addLiquidity ve removeLiquidity. addLiquidity fonksiyonu, belirtilen tokenları ve miktarları toplar, önce bu tokenları sözleşmenin sahibi olan adresle değiştirir, ardından belirtilen miktarları yönlendiriciye (ROUTER) onaylatır ve son olarak belirtilen miktarlarda likidite oluşturur. Oluşturulan likidite, sözleşmenin sahibi olan adrese verilir.

removeLiquidity fonksiyonu ise, belirtilen iki token için likiditeyi sözleşmenin sahibi olan adresten toplar, belirtilen miktarlarda bu iki tokeni kullanarak likiditeyi ortadan kaldırır ve bu tokenları sözleşmenin sahibi olan adrese verir.

Sözleşme ayrıca, IUniswapV2Router, IUniswapV2Factory ve IERC20 arayüzlerini tanımlar. IUniswapV2Router arayüzü, Uniswap V2 yönlendiricisindeki addLiquidity ve removeLiquidity fonksiyonlarını tanımlar. IUniswapV2Factory arayüzü, Uniswap V2 fabrikasındaki getPair fonksiyonunu tanımlar. IERC20 arayüzü, belirtilen tokenlardaki transfer, bakiye, onay ve benzeri işlemleri tanımlar. Bu arayüzler, sözleşmenin Uniswap V2 ile etkileşim kurmasına yardımcı olur.

Sonuç Bağlamı

Uniswap V2, merkeziyetsiz finansın önde gelen protokollerinden biridir ve likidite sağlayıcılara avantajlı fırsatlar sunar. Uniswap V2’nin kullanımı, akıllı sözleşmeler aracılığıyla gerçekleştirilir ve bu sözleşmeler, platformun tüm işlemlerini düzenler. Bu makalede, Uniswap V2’nin likidite ekleme ve çıkarma işlemleri hakkında ayrıntılı bilgi edindik ve akıllı sözleşmeye örnek bir inceleme yaptık. Ayrıca likidite yönetimi için bazı ipuçları ve püf noktalarını da öğrendik. Uniswap V2’nin, merkezi borsalara alternatif olarak likidite sağlama potansiyeli ve kullanıcıların finansal özgürlüğünü artırma vizyonu, kripto para dünyasında büyük bir değişim yaratmaya devam edecektir.

Solidity Programlama Dili Öğrenme yolculuğunuz hakkında daha iyi rehberlik almak için Solidity nedir? Ethereum Akıllı Sözleşmelerinin Dili Rehberi içeriğimize göz atın. Dilerseniz Yeni Başlayanlar için Solidity – Akıllı Sözleşme Geliştirme Hızlandırılmış Kursuna katılın.

Çalışmaya nereden başlayacağım diyenler için Blockchain ​​Developer Olmak İçin Yol Haritası içeriğine de muhakkak bakın.

Gelin aklınızdaki soruları SUPERPEER sohbetinde cevaplayalım.

Bu makaleyi okuduğunuz için teşekkürler! Bana destek olmak isterseniz;

Beni TwitterLinkedin ve YouTube‘da takip edin.

Kısa bir yorum bırakmayı UNUTMAYIN!

solidity101 - Solidity, 2015 yılında Christian Reitwiessner liderliğinde piyasaya sürülen, büyük harf kullanımına göre ikinci en büyük kripto para piyasası olan Ethereum tarafından oluşturulan yepyeni bir programlama dilidir.

Yazarın Profili
İlginizi Çekebilir

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir