標識符未找到或不唯一。關於添加新產品智能合約
我在這裡做錯了什麼,這是基於電子商務的智能合約,允許使用者創建商店列表商品並進行銷售。我在第 61 行收到上述錯誤
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.9;
//導入“hardhat/console.sol”;
contract MarketPride { 地址應付所有者;uint256 產品計數器;
結構產品{字元串標題; 字元串類別;字元串描述;地址應付賣方;uint256 價格;uint256 評級;單位編號;uint256 時間戳;} 產品
$$ ++productCounter $$= newProduct //創建所有store的對象 struct storeStruct { string name; 字元串描述;uint256 編號;地址創建者;} 產品$$ $$產品; 映射 (uint256 => Product) public productById; 映射(uint256 => storeStruct)公共商店;
constructor () { owner == msg.sender; }
modifier onlyStoreOwner() { require(owner == msg.sender , ‘只有店主可以刪除商店’); _; }
事件支付(地址索引_from,地址索引_to,uint256 _price);
函式 checkUserExist(地址公鑰)公共視圖返回(bool){}
function createStore(string calldata _name, string calldata _desc) public view{ require(checkUserExist(msg.sender) == false, ‘請先註冊一個賬號’); require(bytes(_name).length>0, “需要包含店鋪名稱”); require(bytes(_desc).length>0, “描述起著重要作用”); }
function listProductToStore( string memory _name, string memory _category, string memory _description, address payable _price, uint256 _rating, uint256 _time) public { require(checkUserExist(msg.sender) == false, ‘請先註冊一個賬號’); 產品記憶 newProduct = Product({ buyer: address(0), seller: msg.sender, id: products, name: _name, category: _category, description: _description, price: _price, rating: _rating });
}
function payForProducts(address _from, address _to, uint256 price) public payable { }
函式 getAllStore() 公共視圖返回(storeStruct
$$ $$記憶){} 函式 getAllProduct() 公共視圖返回(Product
$$ $$記憶){} function getStoreName(address pubkey) 外部視圖 returns(string memory){} }
我不確定為什麼在使用名稱
Product
創建結構時使用名稱創建結構實例productStruct
。將第 61 行替換為:productStruct memory newProduct = productStruct({ ...
此外,似乎您沒有在任何地方儲存您的結構實例。確保也更新它。
products[++productCounter] = newProduct
更新:最終程式碼:
productStuct memory newProduct = productStuct({ buyer: address(0), seller: msg.sender, id: products, name: _name, category: _category, description: _description, price: _price, rating: _rating }); products[++productCounter] = newProduct