Leçon 3

マーケットプレイスのリストの管理

分散型マーケットプレイスでのアイテムの作成、リスト、購入について説明した後、販売からアイテムを削除し、アイテムの価格を更新する機能を追加することで、スマートコントラクトの強化に焦点を当てます。

マーケットプレイス契約の強化

このセクションでは、2 つの新しい関数 removeItemFromSaleupdateItemPriceを紹介します。 これらの機能により、売り手は商品を販売から削除し、商品の価格をそれぞれ更新できます。

拡張 Marketplace 契約は次のとおりです。

硬度
SPDX ライセンス識別子: MIT
プラグマの堅牢性^ 0.8.6;

契約マーケットプレイス {
    アイテムの新しい構造を定義する
    構造体 アイテム {
        string name;
        uint price;
        address payable seller;
        bool forSale;
    }

すべての項目を保持する配列
    アイテム[] パブリックアイテム;

簡潔にするためにイベント定義は省略されています

簡潔にするために、その他の関数定義は省略されています

販売からアイテムを削除する機能
    関数 removeItemFromSale(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;
    }

品目の価格を更新する関数
    関数 updateItemPrice(uint _itemId, uint _newPrice) public {
        Item storage item = items[_itemId];
        require(msg.sender == item.seller, "Only the owner can update the price");
        item.price = _newPrice;
    }
}

この removeItemFromSale 関数では、最初に指定された _itemId. 次に、関数 (msg.sender) を呼び出す人がアイテムの販売者であることを確認します。 この場合、アイテムのプロパティを forSale に設定し、事実上 false販売から削除します。

同様に、この関数ではupdateItemPrice、提供されたアイテムを取得し、販売者であるmsg.senderことを確認し、その場合は、アイテムの価格を提供された_itemId_newPriceものに更新します。

拡張マーケットプレイス契約の展開と操作

コントラクトを拡張し Marketplace たら、前のレッスンで行ったようにコンパイルして配置します。 コンパイルしてデプロイする前に、Solidityコンパイラプラグインのドロップダウンメニューから正しいコントラクトを選択することを忘れないでください。

コントラクトがデプロイされると、デプロイ&実行トランザクションプラグインのデプロイされたコントラクトセクションに表示されます。 ここでは、コントラクトを操作することができます。

セールからアイテムを削除するには、関数に removeItemFromSale アイテムIDを入力し、ボタンをクリックします。 アイテムの価格を更新するには、アイテムIDと新しい価格を updateItemPrice 関数に入力し、ボタンをクリックします。

これで、イーサリアムブロックチェーン上に基本的でありながら機能的な分散型マーケットプレイスを構築できました。 このスマートコントラクトを使用して、アイテムを作成、一覧表示、購入、削除、および更新できます。 よくやった!

次のレッスンでは、コントラクトの潜在的なセキュリティの脆弱性を処理する方法について説明し、コードをさらに合理化するための修飾子を導入します。 乞うご期待!

Clause de non-responsabilité
* Les investissements en cryptomonnaies comportent des risques importants. Veuillez faire preuve de prudence. Le cours n'est pas destiné à fournir des conseils en investissement.
* Ce cours a été créé par l'auteur qui a rejoint Gate Learn. Toute opinion partagée par l'auteur ne représente pas Gate Learn.
Catalogue
Leçon 3

マーケットプレイスのリストの管理

分散型マーケットプレイスでのアイテムの作成、リスト、購入について説明した後、販売からアイテムを削除し、アイテムの価格を更新する機能を追加することで、スマートコントラクトの強化に焦点を当てます。

マーケットプレイス契約の強化

このセクションでは、2 つの新しい関数 removeItemFromSaleupdateItemPriceを紹介します。 これらの機能により、売り手は商品を販売から削除し、商品の価格をそれぞれ更新できます。

拡張 Marketplace 契約は次のとおりです。

硬度
SPDX ライセンス識別子: MIT
プラグマの堅牢性^ 0.8.6;

契約マーケットプレイス {
    アイテムの新しい構造を定義する
    構造体 アイテム {
        string name;
        uint price;
        address payable seller;
        bool forSale;
    }

すべての項目を保持する配列
    アイテム[] パブリックアイテム;

簡潔にするためにイベント定義は省略されています

簡潔にするために、その他の関数定義は省略されています

販売からアイテムを削除する機能
    関数 removeItemFromSale(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;
    }

品目の価格を更新する関数
    関数 updateItemPrice(uint _itemId, uint _newPrice) public {
        Item storage item = items[_itemId];
        require(msg.sender == item.seller, "Only the owner can update the price");
        item.price = _newPrice;
    }
}

この removeItemFromSale 関数では、最初に指定された _itemId. 次に、関数 (msg.sender) を呼び出す人がアイテムの販売者であることを確認します。 この場合、アイテムのプロパティを forSale に設定し、事実上 false販売から削除します。

同様に、この関数ではupdateItemPrice、提供されたアイテムを取得し、販売者であるmsg.senderことを確認し、その場合は、アイテムの価格を提供された_itemId_newPriceものに更新します。

拡張マーケットプレイス契約の展開と操作

コントラクトを拡張し Marketplace たら、前のレッスンで行ったようにコンパイルして配置します。 コンパイルしてデプロイする前に、Solidityコンパイラプラグインのドロップダウンメニューから正しいコントラクトを選択することを忘れないでください。

コントラクトがデプロイされると、デプロイ&実行トランザクションプラグインのデプロイされたコントラクトセクションに表示されます。 ここでは、コントラクトを操作することができます。

セールからアイテムを削除するには、関数に removeItemFromSale アイテムIDを入力し、ボタンをクリックします。 アイテムの価格を更新するには、アイテムIDと新しい価格を updateItemPrice 関数に入力し、ボタンをクリックします。

これで、イーサリアムブロックチェーン上に基本的でありながら機能的な分散型マーケットプレイスを構築できました。 このスマートコントラクトを使用して、アイテムを作成、一覧表示、購入、削除、および更新できます。 よくやった!

次のレッスンでは、コントラクトの潜在的なセキュリティの脆弱性を処理する方法について説明し、コードをさらに合理化するための修飾子を導入します。 乞うご期待!

Clause de non-responsabilité
* Les investissements en cryptomonnaies comportent des risques importants. Veuillez faire preuve de prudence. Le cours n'est pas destiné à fournir des conseils en investissement.
* Ce cours a été créé par l'auteur qui a rejoint Gate Learn. Toute opinion partagée par l'auteur ne représente pas Gate Learn.
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.