İçeriğe geç

5ire EVM Zinciri

5ire IDE

Not: 5ire IDE’yi kullanmaya başlamak için kullanıcıların cüzdanlarını kurması ve yapılandırması gerekir. 5ire cüzdanınızı kurmaya başlamak için bu bölüme gidin.

  1. 5ire IDE Platformuna gidin.

  2. Sol panel menüsünden Çalışma Alanı’na gidin ve Yeni Dosya Oluştur simgesini seçin.

    EVM Image1

  3. Sözleşmeler klasörü altında “5ire.sol” adıyla yeni bir dosya oluşturun.

    EVM Image2

    Yeni bir dosya oluşturulacak ve ana panel boş görünecektir.

  4. Kodu yazma

    Mevcut kodunuzu 5ire.sol dosyasının ana paneline yapıştırabilir veya sözleşme dosyanızı Workspace’e yükleyebilirsiniz.

    Aşağıdaki örnek ERC-20 kodunu da kullanabilirsiniz:

    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.13;
    // https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.0.0/contracts/token/ERC20/IERC20.sol
    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);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
    }
    contract ERC20 is IERC20 {
    uint public totalSupply;
    mapping(address => uint) public balanceOf;
    mapping(address => mapping(address => uint)) public allowance;
    string public name = "Solidity by Example";
    string public symbol = "SOLBYEX";
    uint8 public decimals = 18;
    function transfer(address recipient, uint amount) external returns (bool) {
    balanceOf[msg.sender] -= amount;
    balanceOf[recipient] += amount;
    emit Transfer(msg.sender, recipient, amount);
    return true;
    }
    function approve(address spender, uint amount) external returns (bool) {
    allowance[msg.sender][spender] = amount;
    emit Approval(msg.sender, spender, amount);
    return true;
    }
    function transferFrom(
    address sender,
    address recipient,
    uint amount
    ) external returns (bool) {
    allowance[sender][msg.sender] -= amount;
    balanceOf[sender] -= amount;
    balanceOf[recipient] += amount;
    emit Transfer(sender, recipient, amount);
    return true;
    }
    function mint(uint amount) external {
    balanceOf[msg.sender] += amount;
    totalSupply += amount;
    emit Transfer(address(0), msg.sender, amount);
    }
    function burn(uint amount) external {
    balanceOf[msg.sender] -= amount;
    totalSupply -= amount;
    emit Transfer(msg.sender, address(0), amount);
    }
    }

    Yukarıda belirtilen kodu yapıştırdıktan sonra ekranınız şu şekilde görünecektir:

    EVM Image3

  5. Derleme

    Sol panelden Solidity Compiler’a gidin.

    Bir sözleşmeyi derlemek için ya Dosya Gezgini’nden istenen dosyayı seçin ya da birden çok dosya açıksa istenen dosyanın Editör’de etkin olduğundan emin olun.

    Dosya gezgininde seçilen aktif bir dosya varsa, solidity derleyicisi şöyle görünecektir:

    EVM Image4

    Sözleşme dosyasını derlemek için Compile 5ire.sol’a tıklayın.

    Başarılı bir derlemeden sonra, ekranınız şöyle görünecek:

    EVM Image5

  6. Dağıtım

    Sol panelden Deploy & Run Transactions kenar çubuğuna gidin.

    Bu modülü kullanmak için derlenmiş bir sözleşmeye sahip olmak gerekir. Dolayısıyla, CONTRACT seçim kutusunda bir sözleşme adı varsa (seçim kutusu VALUE giriş alanının altındadır), bu modülü kullanabilirsiniz.

    • 5ire Provider: 5ire IDE’yi enjekte edilmiş bir web3 sağlayıcısına bağlamak için. En yaygın enjekte edilen sağlayıcı MetaMask ve 5ire Cüzdan uzantısıdır.
    • Hardhat Provider: 5ire IDE’yi yerel bir Hardhat test zincirine bağlamak için.
    • Ganache Provider: 5ire IDE’yi yerel bir Truffle Ganache test zincirine bağlamak için.

    EVM Image6

    Deploy’a tıklayın.

    Web3 uzantılı işlemi onaylayın.

    Video Öğretici:

    İşlem onaylandıktan sonra dağıtım ayrıntıları, sözleşme adresi ve işlem terminalde görünür olacaktır:

    EVM Image7

Explorer’ı Kullanma

  1. 5ireChain düğümünü klonlama

    • Sisteminizde bir terminal shell açın.

    • Aşağıdaki komutu çalıştırarak firechain-evm-base düğüm deposunu klonlayın:

      HTTPS:

      https://github.com/5ire-tech/5ire-evm-base.git

      SSH:

      [email protected]:5ire-tech/5ire-evm-base.git
  2. Düğüme bağlanma

    • Gerekirse, yerel sisteminizde bir terminal kabuğu açın.

    • 5ire EVM tabanını derlediğiniz kök dizini değiştirin.

    • Aşağıdaki komutu çalıştırarak düğümü geliştirme modunda başlatın:

      Cargo build –release

      ./target/release/firechain-node --dev (düğümü geliştirme modunda çalıştıracak.)

      —dev komut satırı seçeneği, düğümün Alice için belirlenmiş bir EVM hesabının yanı sıra test amacıyla özel olarak ayarlanmış diğer hesapları içeren önceden tanımlanmış bir geliştirme zinciri belirtimi kullanarak çalıştığını belirtir.

    • Terminalde görüntülenen çıktıyı inceledikten sonra düğümünüzün başarılı bir şekilde çalışıp çalışmadığını doğrulayabilirsiniz.

      Terminal şuna benzer bir çıktı göstermelidir:

      EVM Image8

      EVM Image9

    • Yerel düğüme bağlanmak için Polkadot-JS uygulamasını kullanın.

    • Üst çubukta, geliştirici açılır menüsüne tıklayın.

    • Token sözleşmesini oluşturun.

    • Extrinsics’i seçin.

    • İşlemi göndermek için, hesap olarak fonlanmış bir hesap geliştirme hesabı seçin.

    • EVM’yi (Ethereum Virtual Machine) seçin.

    • Oluştur işlevini seçin.

    • İşlev için parametreleri yapılandırın.

      Bunun içinBunu belirtin
      Source0xd43593c715fdd31c61141abd04a99fd6822c8558 (Seçtiğiniz Hesabın H160 Adresi)
      InitEnter the token raw bytecode
      Value0
      Gas Limit42949672
      Max Fee Per Gas1000000
    • İsteğe bağlı parametreler boş bırakılabilir. Nonce değeri, kaynak hesabın amacı için bilinen nonce değerini artıracaktır. Bu 0x0’dan başlar. Öncelikle seçilen işleve bağlı olarak, kullanılmayan parametreleri kaldırmanız gerekecektir.

    • İşlemi gönder’e basın. Bu, işleminizi tamamlama sürecini başlatacaktır.

    • İşlemi yetkilendirmek için Gönder ve İmzala’ya tıklayın. Bu, işlemin tamamlanmasına neden olacaktır.

      EVM Image10

Remix IDE

Aşağıdaki adımlarla Remix IDE’yi kullanarak 5ire EVM zincirinde bir akıllı sözleşme yayınlayabilirsiniz.

  1. İşlemi başlatmak için bu bağlantıyı ziyaret edin.

  2. Çalışma alanları altında, Yeni Dosya Oluştur’a tıklayın. Bu, 5ire EVM zincirinde bir akıllı sözleşme yayınlamak için üzerinde çalışmaya başlayabileceğiniz yeni bir belge oluşturmanıza yardımcı olacaktır.

    Remix Image1

  3. 5ire.sol adlı sözleşmeler altında Yeni Bir Dosya oluşturun. Bu, 5ire üzerinde bir akıllı sözleşme kurabileceğiniz yeni bir program oluşturmanıza yardımcı olacaktır

    Remix Image2

  4. Aşağıdaki kodu kopyalayıp 5ire.sol dosyasına yapıştırın.

    Burada ERC-20 belirteci için örnek bir kodumuz var:

    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.13;
    // https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.0.0/contracts/token/ERC20/IERC20.sol
    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);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
    }
    contract ERC20 is IERC20 {
    uint public totalSupply;
    mapping(address => uint) public balanceOf;
    mapping(address => mapping(address => uint)) public allowance;
    string public name = "Solidity by Example";
    string public symbol = "SOLBYEX";
    uint8 public decimals = 18;
    function transfer(address recipient, uint amount) external returns (bool) {
    balanceOf[msg.sender] -= amount;
    balanceOf[recipient] += amount;
    emit Transfer(msg.sender, recipient, amount);
    return true;
    }
    function approve(address spender, uint amount) external returns (bool) {
    allowance[msg.sender][spender] = amount;
    emit Approval(msg.sender, spender, amount);
    return true;
    }
    function transferFrom(
    address sender,
    address recipient,
    uint amount
    ) external returns (bool) {
    allowance[sender][msg.sender] -= amount;
    balanceOf[sender] -= amount;
    balanceOf[recipient] += amount;
    emit Transfer(sender, recipient, amount);
    return true;
    }
    function mint(uint amount) external {
    balanceOf[msg.sender] += amount;
    totalSupply += amount;
    emit Transfer(address(0), msg.sender, amount);
    }
    function burn(uint amount) external {
    balanceOf[msg.sender] -= amount;
    totalSupply -= amount;
    emit Transfer(msg.sender, address(0), amount);
    }
    }

    Yukarıda belirtilen kodu girdikten sonra ekranınız şu şekilde görünecektir:

    Remix Image3

  5. Solidity Compiler’a tıklayın ve 5ire.sol’u derlemeye tıklayın.

    Remix Image4

    Remix Image5

  6. İstediğiniz işlemleri gerçekleştirmek için Deploy & Run Transactions’a tıklayın.

    Remix Image6

  7. 5ire.sol sözleşmesini dağıtın. Canlı ağa dağıtmak için Injected Web3’ü seçin. Bu durumda, enjekte edilen sağlayıcı olarak MetaMask’ı seçtik.

    Remix Image7

  8. Ayrıntıları doğruladıktan sonra işlemi onaylayın. Cüzdan adresini ve alıcı hesaba aktarılacak tutarı girmelisiniz.

    Remix Image8

  9. İşlemleri 5ire EVM zincirinde dağıtmak için MetaMask’ta gaz ücretini onaylayın (gaz ücreti, bir işlemin tamamlanması için kullanılan küçük bir işlem ücretidir).

    Remix Image9

  10. Remix’te dağıtılan sözleşme adresini bulun ve entegre işlevlerle etkileşim kurarak sözleşmeyi güncelleyin.

    Remix Image10

Ganache

Ganache, özel bir blok zincirindeki akıllı sözleşmelerle etkileşime geçmek için Ethereum blok zincirini taklit etmenize izin veren özel bir Ethereum blok zinciri ortamıdır. Testleri çalıştırabilir, komutları uygulayabilir ve zincirin nasıl çalıştığını kontrol ederken durumları denetleyebilir.

Ganache’yi indirmek için bu bağlantıyı ziyaret edin.

Aşağıdaki kılavuz, Ganache kullanarak bir akıllı sözleşmeyi dağıtma sürecinde size yol gösterecektir:

  1. Tarayıcınızda Remix IDE’yi açın ve kontrat bölümü altında yeni bir dosya oluşturun.

    Ganache Image1

  2. Örnek kod şablonlarından birini kullanın ve aşağıda gösterildiği gibi Compile butonuna tıklayarak derleyin.

    Ganache Image2

  3. Derlemeden sonra masaüstünüzde Ganache’yi açın. Ekranınız aşağıdaki resme benzeyecektir. QUICKSTART Ethereum’a tıklayın

    Ganache Image3

  4. Şimdi, aşağıda gösterildiği gibi yerel bir RPC sunucusunda (http://127.0.0.1:7545) blok zinciriniz için bir anımsatıcı ile birlikte 10 varsayılan hesap göreceksiniz:

    Ganache Image4

  5. Tarayıcıya geri dönün ve Compile’ın hemen altındaki Deploy bölümüne gidin ve aşağıda gösterildiği gibi ortamdan Ganache Provider’ı seçin:

    Ganache Image5

  6. Ganache Provider olarak http://127.0.0.1:7545 sunucusunu girin. Ekranınız aşağıda gösterilen resim gibi görünecektir:

    Ganache Image6

  7. Sözleşmeniz artık devreye alınmaya hazır! Devam etmek için Deploy butonuna tıklayın.

    Ganache Image7

  8. Sözleşmenizin başarıyla uygulanıp uygulanmadığını doğrulamak için çıktı sekmesini kontrol edin.

    Ganache Image8

  9. İşleminizin (sürecin) sunucuya başarıyla yansıtılıp yansıtılmadığını doğrulamak için Ganache’yi açın ve İşlemler’e geçin. Burada, aşağıdaki resimde gösterildiği gibi işleminizin ayrıntılarını göreceksiniz:

    Ganache Image9

    Video Öğretici:

Hardhat

Bu kılavuz, 5ire EVM IDE’de gerçekleştirilecek olan Hardhat kullanan bir EVM Akıllı Sözleşmesini dağıtma sürecini özetlemektedir.

  1. Bir proje klasörü oluşturarak başlayın. Bu kılavuz için proje klasörünün adı “mkdir hardhat-tutorial”.

    Hardhat Image1

  2. npx hardhat komutunu çalıştırın.

  3. Bir sonraki adım, “Ne yapmak istiyorsunuz?” sorusu sorulduğunda Javascript/TypeScript projesi oluştur’u seçmektir.

    Hardhat Image2

  4. Başlangıçta oluşturulan hardhat project root’u ekleyin.

    Hardhat Image3

  5. İşlemi tamamlamak için “Y” ye basın.

    Hardhat Image4

  6. İşlem tamamlandığında ekranınızın görünümü aşağıdaki görseldeki gibi olacaktır.

    Hardhat Image5

  7. Remix IDEyi açın ve Deploy and Run Transactions’ı seçin..

    Hardhat Image6

  8. Hardhat Provider‘ı Seçin.

    Hardhat Image7

  9. Bağlantı kurulduysa, zincir kimliğini ve hesap listesini göreceksiniz.

    Hardhat Image8

  10. npx hardhat node komutunu çalıştırın. Ardından, bakiyesi 10000 ETH olan 20 hesabın bir listesini görüntüler.

    Hardhat Image9

  11. Deploy’a tıklayarak, belirli bir akıllı sözleşmenin dağıtımını başlatabilirsiniz ve her şey yolunda giderse işleminiz başarılı olacaktır.

    Hardhat Image10

  12. Terminali kontrol ederek işleminizin tamamlandığını doğrulayabilirsiniz.

    Hardhat Image11

Video Öğretici: