Di bagian ini, kami akan memperkenalkan dua fungsi baru: removeItemFromSale
dan updateItemPrice
. Fungsi-fungsi ini akan memungkinkan penjual untuk menghapus barangnya dari penjualan dan memperbarui harga barangnya masing-masing.
Marketplace
yang ditingkatkan:Soliditas
// Pengenal Lisensi SPDX: soliditas pragma MIT
^0.8.6;
contract Marketplace {
// Tentukan struktur baru untuk Item
struct Item {
string name;
uint price;
address payable seller;
bool forSale;
}
// Array untuk menampung semua item
Item[] item publik;
// Definisi peristiwa dihilangkan agar singkatnya
// Definisi fungsi lainnya dihilangkan agar singkatnya
// Fungsi untuk menghapus suatu barang dari penjualan
fungsi deleteItemFromSale(uint _itemId) public {
Item storage item = items[_itemId];
require(msg.sender == item.seller, "Only the owner can remove the item from sale");
item.forSale = false;
}
// Berfungsi untuk memperbarui harga suatu barang
fungsi updateItemPrice(uint _itemId, uint _newPrice) publik {
Item storage item = items[_itemId];
require(msg.sender == item.seller, "Only the owner can update the price");
item.price = _newPrice;
}
}
Dalam fungsi removeItemFromSale
, pertama-tama kita mengambil item dengan _itemId
yang disediakan. Kami kemudian memeriksa apakah orang yang memanggil fungsi tersebut (msg.sender
) adalah penjual barang tersebut. Jika hal ini terjadi, kami menyetel properti forSale
item tersebut ke false
, yang secara efektif menghapusnya dari penjualan.
Demikian pula, dalam fungsi updateItemPrice
, kami mengambil item dengan _itemId
yang disediakan, memeriksa apakah msg.sender
adalah penjualnya, dan jika demikian, kami memperbarui harga item ke _newPrice
yang disediakan.
Setelah menyempurnakan kontrak Marketplace
, kompilasi dan terapkan seperti yang Anda lakukan di pelajaran sebelumnya. Ingatlah untuk memilih kontrak yang benar dari menu dropdown di plugin compiler Solidity sebelum mengkompilasi dan menerapkan.
Setelah kontrak diterapkan, kontrak tersebut akan muncul di bagian Kontrak yang Diterapkan di plugin Deploy & Run Transactions. Di sini, Anda dapat berinteraksi dengan kontrak.
Untuk menghapus item dari penjualan, masukkan ID item ke dalam fungsi removeItemFromSale
dan klik tombol. Untuk memperbarui harga suatu barang, masukkan ID barang dan harga baru ke dalam fungsi updateItemPrice
dan klik tombol.
Dengan ini, Anda sekarang telah membangun pasar terdesentralisasi yang mendasar namun fungsional di blockchain Ethereum. Anda dapat membuat, membuat daftar, membeli, menghapus, dan memperbarui item dengan kontrak pintar ini. Kerja bagus!
Pada pelajaran berikutnya, kita akan membahas cara menangani potensi kerentanan keamanan dalam kontrak kita dan memperkenalkan pengubah untuk lebih menyederhanakan kode kita. Pantau terus!
Di bagian ini, kami akan memperkenalkan dua fungsi baru: removeItemFromSale
dan updateItemPrice
. Fungsi-fungsi ini akan memungkinkan penjual untuk menghapus barangnya dari penjualan dan memperbarui harga barangnya masing-masing.
Marketplace
yang ditingkatkan:Soliditas
// Pengenal Lisensi SPDX: soliditas pragma MIT
^0.8.6;
contract Marketplace {
// Tentukan struktur baru untuk Item
struct Item {
string name;
uint price;
address payable seller;
bool forSale;
}
// Array untuk menampung semua item
Item[] item publik;
// Definisi peristiwa dihilangkan agar singkatnya
// Definisi fungsi lainnya dihilangkan agar singkatnya
// Fungsi untuk menghapus suatu barang dari penjualan
fungsi deleteItemFromSale(uint _itemId) public {
Item storage item = items[_itemId];
require(msg.sender == item.seller, "Only the owner can remove the item from sale");
item.forSale = false;
}
// Berfungsi untuk memperbarui harga suatu barang
fungsi updateItemPrice(uint _itemId, uint _newPrice) publik {
Item storage item = items[_itemId];
require(msg.sender == item.seller, "Only the owner can update the price");
item.price = _newPrice;
}
}
Dalam fungsi removeItemFromSale
, pertama-tama kita mengambil item dengan _itemId
yang disediakan. Kami kemudian memeriksa apakah orang yang memanggil fungsi tersebut (msg.sender
) adalah penjual barang tersebut. Jika hal ini terjadi, kami menyetel properti forSale
item tersebut ke false
, yang secara efektif menghapusnya dari penjualan.
Demikian pula, dalam fungsi updateItemPrice
, kami mengambil item dengan _itemId
yang disediakan, memeriksa apakah msg.sender
adalah penjualnya, dan jika demikian, kami memperbarui harga item ke _newPrice
yang disediakan.
Setelah menyempurnakan kontrak Marketplace
, kompilasi dan terapkan seperti yang Anda lakukan di pelajaran sebelumnya. Ingatlah untuk memilih kontrak yang benar dari menu dropdown di plugin compiler Solidity sebelum mengkompilasi dan menerapkan.
Setelah kontrak diterapkan, kontrak tersebut akan muncul di bagian Kontrak yang Diterapkan di plugin Deploy & Run Transactions. Di sini, Anda dapat berinteraksi dengan kontrak.
Untuk menghapus item dari penjualan, masukkan ID item ke dalam fungsi removeItemFromSale
dan klik tombol. Untuk memperbarui harga suatu barang, masukkan ID barang dan harga baru ke dalam fungsi updateItemPrice
dan klik tombol.
Dengan ini, Anda sekarang telah membangun pasar terdesentralisasi yang mendasar namun fungsional di blockchain Ethereum. Anda dapat membuat, membuat daftar, membeli, menghapus, dan memperbarui item dengan kontrak pintar ini. Kerja bagus!
Pada pelajaran berikutnya, kita akan membahas cara menangani potensi kerentanan keamanan dalam kontrak kita dan memperkenalkan pengubah untuk lebih menyederhanakan kode kita. Pantau terus!