contract Score {
struct Studetn {
address stuAddress;
uint score;
}
mapping (address => Studetn) stuMap;
address public owner;
Studetn public Stu;
constructor() {
owner = msg.sender;
}
modifier OnlyOwner {
require(owner == msg.sender,"not techer");
_;
}
// 更改权限
function changeOwner(address _owner) view public {
_owner = owner;
}
// 添加学生分数
function addStuScore(address _stuAddress, uint _stuScore) public OnlyOwner {
Stu = stuMap[_stuAddress];
Stu.score = _stuScore;
Stu.stuAddress = _stuAddress;
}
// 修改学生分数
function changeStuScore(address _stuAddress, uint changeScore) public OnlyOwner {
Stu = stuMap[_stuAddress];
require(Stu.score <= 100, "not > 100 score");
Stu.stuAddress = _stuAddress;
Stu.score = changeScore;
}
}
interface IScore {
function changeStuScore(address _stuAddress, uint changeScore) external;
}
contract Techer {
//修改分数
function getStudentScore(address _score, address _stuAddress, uint score) external {
IScore(_score).changeStuScore(_stuAddress,score);
}
}
但是我在合约调用合约的时候 不能进行修改Score上面学生的一个分数,好奇怪.没找到什么原因,有老师可以帮忙可以看看吗?
Error encoding arguments: Error: invalid address (argument="address", value="30", code=INVALID_ARGUMENT, version=address/5.5.0) (argument=null, value="30", code=INVALID_ARGUMENT, version=abi/5.5.0)