Panduan Lengkap untuk Membangun Platform Perdagangan NFT Desentralisasi dengan Smart Contract

robot
Pembuatan abstrak sedang berlangsung

Membangun platform perdagangan NFT Desentralisasi

Untuk NFT yang mengikuti protokol ERC-721, mewujudkan perdagangan desentralisasi adalah isu penting. Berbeda dengan token ERC-20, setiap Token NFT adalah unik, sehingga tidak dapat menetapkan harga perdagangan melalui kurva harga seperti beberapa DEX. Saat ini, platform perdagangan NFT yang dominan banyak menggunakan metode pemesanan untuk melakukan perdagangan, mirip dengan barang yang dipajang di rak supermarket, di mana pembeli dapat memilih barang dengan harga yang sesuai untuk dibeli.

Artikel ini akan memperkenalkan cara untuk mewujudkan platform perdagangan NFT desentralisasi yang dasar melalui kontrak pintar dan antarmuka frontend yang sederhana. Perlu dicatat bahwa konten artikel ini hanya untuk referensi belajar dan tidak cocok untuk digunakan langsung di lingkungan produksi.

Web3 Pemula Series: Mewujudkan DEX NFT dari Nol

Fitur Inti dari Platform NFT

Sebuah platform perdagangan NFT desentralisasi yang dasar harus memiliki fungsi-fungsi berikut:

  1. Menambahkan produk: Penjual dapat menetapkan harga untuk menambahkan NFT ke platform.
  2. reprove barang: pembeli dapat membeli NFT sesuai dengan harga yang ditetapkan
  3. Biaya transaksi: platform dapat mengenakan biaya transaksi berdasarkan persentase.

Proses Penempatan Produk

  1. Frontend: Pengguna memilih NFT dan menetapkan harga, klik untuk mengunggah
  2. Kontrak: Pengguna memberikan wewenang kepada kontrak untuk mengoperasikan NFT-nya

Kontrak perlu memelihara tabel pemetaan harga untuk produk yang dipasang oleh pengguna. Meskipun data ini juga dapat disimpan di layanan terpusat untuk mengurangi beban kontrak, namun artikel ini akan menyimpannya di dalam kontrak.

Proses Pembelian Barang

  1. Frontend: Pengguna memilih NFT yang ingin dibeli, klik beli
  2. Kontrak: Mengalihkan dana pembeli kepada penjual, dan mengalihkan NFT kepada pembeli

Web3 Pemula: Mewujudkan NFT DEX dari Nol

Mewujudkan platform perdagangan NFT

1. Buat NFT uji coba

Untuk kebutuhan pengujian, kita dapat menggunakan Remix untuk dengan cepat menerapkan kontrak NFT yang mengikuti protokol ERC-721. Kita juga dapat langsung menggunakan NFT yang telah disiapkan untuk operasi selanjutnya.

Seri Pemula Web3: Mewujudkan NFT DEX dari nol

2. Menulis kontrak pintar

Kontrak perlu mengimplementasikan metode inti berikut:

2.1 Penjual menambahkan NFT

Proses:

  1. Pengguna memilih NFT
  2. Atur harga ( dapat menggunakan stablecoin atau ETH sebagai acuan )
  3. Memberikan otorisasi NFT kepada kontrak

Metode penyajian kontrak membutuhkan:

  1. Verifikasi kepemilikan NFT
  2. Tambahkan catatan listing
  3. Memicu peristiwa peluncuran

Seri Pemula Web3: Mewujudkan DEX NFT dari nol

2.2 Pembeli membeli NFT

Metode pembelian kontrak diperlukan:

  1. Membaca data penawaran NFT
  2. Hitung dan potong biaya transaksi
  3. Mentransfer NFT kepada pembeli
  4. Memicu peristiwa pembelian

Seri Pemula Web3: Mewujudkan NFT DEX dari nol

2.3 Batalkan peluncuran

Cukup atur field isActive dalam catatan listing menjadi false.

2.4 Penarikan Biaya Transaksi

Platform dapat menyimpan biaya yang diterima ke dalam kontrak atau mengalirkannya ke alamat yang ditentukan.

Seri Pemula Web3: Membangun NFT DEX dari Nol

3. Mengembangkan antarmuka depan

Alat utama yang digunakan:

  • Ant Design Web3: menghubungkan dompet dan menampilkan NFT
  • Wagmi: Interaksi dengan dompet
  • Next.js + Vercel: menyebarkan proyek

Frontend perlu mengimplementasikan tiga halaman utama:

  • Mint: digunakan untuk mencetak NFT uji coba
  • Beli:Pasar NFT
  • Portfolio: Mengelola NFT pengguna

Web3 Pemula Seri: Membangun NFT DEX dari Nol

3.1 Hubungkan Dompet

Menggunakan komponen koneksi Ant Design Web3 untuk mengimplementasikan fungsi koneksi dompet.

Web3 Pemula Series: Mewujudkan NFT DEX dari Nol

3.2 Halaman Mint

Gunakan metode useWriteContract dari wagmi untuk memanggil fungsi mint dari kontrak NFT.

Web3 Pemula Seri: Mewujudkan NFT DEX dari Nol

3.3 Halaman Portofolio

Menampilkan NFT yang dimiliki pengguna, mendukung operasi penjualan dan penarikan.

Saat meluncurkan, perlu memanggil metode listNFT dan terlebih dahulu memberikan otorisasi NFT kepada kontrak. Panggil metode cancelListing saat mencabut listing.

Web3 Pemula Seri: Mewujudkan NFT DEX dari Nol

3.4 Halaman Beli

Tampilkan semua NFT yang sudah terdaftar dan valid. Panggil metode purchaseNFT saat membeli, dan bayar ETH yang sesuai.

Seri Pemula Web3: Membangun DEX NFT dari nol

Dengan ini, sebuah platform perdagangan NFT desentralisasi dasar telah selesai. Dapat diterapkan di platform seperti Vercel untuk digunakan dalam pengujian.

Web3 pemula seri: Mewujudkan NFT DEX dari nol

Seri Pemula Web3: Mewujudkan DEX NFT dari Nol

MINT-14.07%
Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
  • Hadiah
  • 9
  • Bagikan
Komentar
0/400
MEVEyevip
· 07-19 22:03
Biaya transaksi terlalu mahal, ya?
Lihat AsliBalas0
PensionDestroyervip
· 07-19 12:46
Biaya transaksi akan dianggap bodoh lagi.
Lihat AsliBalas0
AirdropF5Brovip
· 07-18 20:13
Biaya transaksinya sangat tinggi, pergi saja!
Lihat AsliBalas0
PoetryOnChainvip
· 07-16 23:37
Ini akan dianggap bodoh lagi.
Lihat AsliBalas0
ShitcoinConnoisseurvip
· 07-16 23:32
Ini akan menggoreng nasi dingin dan terlihat jelek untuk dimakan
Lihat AsliBalas0
staking_grampsvip
· 07-16 23:32
gas harus dihitung dengan baik ya
Lihat AsliBalas0
probably_nothing_anonvip
· 07-16 23:19
Bermain di Testnet juga tidak rugi.
Lihat AsliBalas0
WalletDetectivevip
· 07-16 23:12
Biaya transaksi terlalu tinggi, ya?
Lihat AsliBalas0
RugDocScientistvip
· 07-16 23:07
Akun sudah siap, mari挖坑.
Lihat AsliBalas0
Lihat Lebih Banyak
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)