🚀 Online Kendi Sınavını Oluştur ve Çöz!
avatar
Odev_Yetis
30 puan • 514 soru • 595 cevap
✔️ Cevaplandı • Doğrulandı

ERC-1155 Token Oluşturma Rehberi: Adım Adım Anlatım

ERC-1155 token oluşturmak istiyorum ama nasıl yapacağımı bilmiyorum. Adım adım bir rehber var mı? Teknik detaylara çok hakim değilim.
WhatsApp'ta Paylaş
1 CEVAPLARI GÖR
✔️ Doğrulandı
0 kişi beğendi.
avatar
furkan-hsn
1345 puan • 662 soru • 629 cevap

💎 ERC-1155 Nedir?

ERC-1155, Ethereum blokzincirinde hem değiştirilebilir (fungible) hem de değiştirilemez (non-fungible) token'ları temsil etmek için kullanılan bir token standardıdır. Gelin, bu standardın ne gibi avantajlar sunduğuna ve neden bu kadar popüler olduğuna yakından bakalım.
  • ⚙️ Tek Sözleşme, Çoklu Token: ERC-721 (NFT'ler için) ve ERC-20 (değiştirilebilir token'lar için) standartlarının aksine, ERC-1155 tek bir akıllı sözleşme aracılığıyla birden fazla token türünü yönetmeyi mümkün kılar.
  • Gaz Ücretlerinden Tasarruf: Birden fazla token'ı tek bir sözleşmede birleştirmek, özellikle birden fazla token işlemi yapıldığında gaz ücretlerinden önemli ölçüde tasarruf sağlar.
  • 🎮 Oyunlar İçin İdeal: Oyun içi öğeler (silahlar, zırhlar, karakterler vb.) gibi hem değiştirilebilir hem de değiştirilemez varlıkları temsil etmek için mükemmeldir.
  • 📦 Toplu İşlemler: ERC-1155, birden fazla token'ı tek bir işlemde transfer etmeyi destekler, bu da performansı artırır ve maliyetleri düşürür.

🛠️ Gerekli Araçlar ve Ortam

ERC-1155 token'ları oluşturmaya başlamadan önce, aşağıdaki araçlara ve ortama sahip olduğunuzdan emin olun:
  • 💻 Node.js ve npm: JavaScript çalışma zamanı ortamı ve paket yöneticisi.
  • 💼 Hardhat: Ethereum geliştirme ortamı. Akıllı sözleşmeleri derlemek, test etmek ve dağıtmak için kullanılır.
  • 🦊 MetaMask: Tarayıcı tabanlı bir Ethereum cüzdanı. Test ağlarında token'ları yönetmek için gereklidir.
  • ✍️ Kod Düzenleyici: Visual Studio Code gibi bir kod düzenleyici.

📝 Adım Adım ERC-1155 Token Oluşturma

Şimdi de adım adım ERC-1155 token'ı nasıl oluşturacağımıza bakalım:

📁 1. Proje Klasörünü Oluşturma ve Başlatma

  • 📂 Öncelikle, projeniz için bir klasör oluşturun: mkdir erc1155-token
  • 🚀 Klasöre gidin: cd erc1155-token
  • ⚙️ Hardhat projesini başlatın: npx hardhat ve varsayılan seçenekleri seçin.

📦 2. Gerekli Paketleri Yükleme

  • 🔩 OpenZeppelin ERC-1155 sözleşmesini yükleyin: npm install @openzeppelin/contracts

📜 3. ERC-1155 Sözleşmesini Yazma

"contracts" klasöründe, "MyToken.sol" adında yeni bir dosya oluşturun ve aşağıdaki kodu ekleyin:

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";

import "@openzeppelin/contracts/access/Ownable.sol";

contract MyToken is ERC1155, Ownable {

uint256 public constant TOKEN_ID = 1;

uint256 public constant MINT_AMOUNT = 1000;

constructor() ERC1155("https://example.com/token/{id}.json") {

_mint(msg.sender, TOKEN_ID, MINT_AMOUNT, "");

}

function uri(uint256 _tokenId) public view override returns (string memory) {

return string(abi.encodePacked("https://example.com/token/", Strings.toString(_tokenId), ".json"));

}

}

🛠️ 4. Sözleşmeyi Derleme

Sözleşmeyi derlemek için aşağıdaki komutu kullanın: bash npx hardhat compile

🚀 5. Sözleşmeyi Dağıtma

"scripts" klasöründe, "deploy.js" adında yeni bir dosya oluşturun ve aşağıdaki kodu ekleyin:

async function main() {

const [deployer] = await ethers.getSigners();

console.log("Dağıtım yapan hesap:", deployer.address);

const MyToken = await ethers.getContractFactory("MyToken");

const myToken = await MyToken.deploy();

await myToken.deployed();

console.log("Token adresi:", myToken.address);

}

main()

.then(() => process.exit(0))

.catch((error) => {

console.error(error);

process.exit(1);

});

Sözleşmeyi dağıtmak için aşağıdaki komutu kullanın (test ağınızı yapılandırdığınızdan emin olun): bash npx hardhat run scripts/deploy.js --network rinkeby

🧪 6. Sözleşmeyi Test Etme

Sözleşmeyi test etmek için Hardhat konsolunu kullanabilirsiniz: bash npx hardhat console --network rinkeby Konsolda, sözleşme örneğini alın ve token bakiyesini kontrol edin: javascript

const MyToken = await ethers.getContractFactory("MyToken");

const myToken = await MyToken.attach("SÖZLEŞME_ADRESİNİZ");

// Sözleşme adresinizi buraya girin

const balance = await myToken.balanceOf(DAĞITICI_ADRESİNİZ, 1);

// Dağıtıcı adresinizi buraya girin, TOKEN_ID = 1

console.log("Bakiye:", balance.toString());

🖼️ Metadata (URI) Yapılandırması

ERC-1155 token'ları için metadata, token'ın adını, açıklamasını, resmini ve diğer özelliklerini içerir. Bu metadata, genellikle bir JSON dosyası olarak saklanır ve bir URI (Uniform Resource Identifier) aracılığıyla erişilir.
  • 🔗 URI Formatı: Sözleşmede belirtilen URI, token ID'sini içermelidir. Örneğin: https://example.com/token/{id}.json
  • 📁 JSON Dosyası: Her token ID'si için bir JSON dosyası oluşturun. Örneğin, https://example.com/token/1.json aşağıdaki gibi olabilir:
json { "name": "Benim ERC-1155 Token'ım", "description": "Bu bir ERC-1155 token örneğidir.", "image": "https://example.com/images/token1.png", "attributes": [ { "trait_type": "Özellik", "value": "Değer" } ] }

🚀 Sonuç

Bu rehberde, ERC-1155 token'larını nasıl oluşturacağınızı ve dağıtacağınızı adım adım öğrendiniz. Bu bilgilerle, oyun içi öğelerden koleksiyonluk dijital varlıklara kadar çeşitli uygulamalar için ERC-1155 token'ları oluşturabilirsiniz. Başarılar!

Yorumlar