如何在我的智能合约中调试解析器错误
How to debug Parser Error in solidity in my smart contract
所以我正在尝试使用 remix IDE 为去中心化电影评级创建智能合约。以下是我想要实现的目标:
- 创建一个映射字段来存储电影评论
- 使用数组存储电影列表
- 创建一个函数,returns 电影到目前为止收到的总评分
- 开发一个在区块链上部署合约后将被调用的构造函数
// SPDX-License-Identifier: MIT
pragma solidity ^ 0.8.10;
contract Rating {
mapping (bytes32 => uint8) public ratingsReceived;
bytes32 [] public movieList;
constructor Rating(bytes32[]movieNames) public {
movieList = movieNames;
}
function totalVotesFor(bytes32 movie) view public returns (uint8) {
return ratingsReceived[movie];
}
function voteForMovie(bytes32 movie) public {
ratingsReceived[movie];
}
}
请查找以下代码,如果它有助于与构造函数的电影评级合同和使用映射来存储评级,我们也可以根据需要添加更多电影。
// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;
contract Rating{
string[] moviesList;
mapping(string => uint8) movieRatings;
constructor() {
moviesList = ["movie1","movie2","movie3"]; // this is default list of movies you can add in constructor
}
// add movies
function addMovie(string memory movie) public returns(string memory){
moviesList.push(movie);
return movie;
}
// get list of movies
function getList() public view returns(string[] memory){
return moviesList;
}
// rate movie with rating
function rateMovie(string memory movie,uint8 rating) public {
require(rating >=0 && rating <= 10,"rating is out of range");
movieRatings[movie] = rating;
}
// get movie rating by passing movie name
function getMovieRating(string memory movie) public view returns(uint8){
return movieRatings[movie];
}
}
所以我正在尝试使用 remix IDE 为去中心化电影评级创建智能合约。以下是我想要实现的目标:
- 创建一个映射字段来存储电影评论
- 使用数组存储电影列表
- 创建一个函数,returns 电影到目前为止收到的总评分
- 开发一个在区块链上部署合约后将被调用的构造函数
// SPDX-License-Identifier: MIT
pragma solidity ^ 0.8.10;
contract Rating {
mapping (bytes32 => uint8) public ratingsReceived;
bytes32 [] public movieList;
constructor Rating(bytes32[]movieNames) public {
movieList = movieNames;
}
function totalVotesFor(bytes32 movie) view public returns (uint8) {
return ratingsReceived[movie];
}
function voteForMovie(bytes32 movie) public {
ratingsReceived[movie];
}
}
请查找以下代码,如果它有助于与构造函数的电影评级合同和使用映射来存储评级,我们也可以根据需要添加更多电影。
// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;
contract Rating{
string[] moviesList;
mapping(string => uint8) movieRatings;
constructor() {
moviesList = ["movie1","movie2","movie3"]; // this is default list of movies you can add in constructor
}
// add movies
function addMovie(string memory movie) public returns(string memory){
moviesList.push(movie);
return movie;
}
// get list of movies
function getList() public view returns(string[] memory){
return moviesList;
}
// rate movie with rating
function rateMovie(string memory movie,uint8 rating) public {
require(rating >=0 && rating <= 10,"rating is out of range");
movieRatings[movie] = rating;
}
// get movie rating by passing movie name
function getMovieRating(string memory movie) public view returns(uint8){
return movieRatings[movie];
}
}