I have code like this and I want to set my name, surname and age in my struct so I want to set them and get them using with my functions
here's my code :
pragma solidity >=0.4.0 <0.7.0;
contract NewHello{
address owner;
constructor()public{
owner = msg.sender;
}
modifier onlyOwner (){
require(msg.sender == owner);
_;
}
struct user{
string name;
string surname;
uint age;
}
user[] new_user;
mapping(address => string) public users; // contains a name for every address
function updateUser(address _address, string memory name,string memory surname,uint age) public onlyOwner {
user memory new_user = user(name,surname,age);
users[_address] = user(name,surname,age);
}
function getUser(address _address) public view returns(string memory name ,string memory surname,uint age) {
//if(users[_address].age == 0) throw;
return (users[_address].name,users[_address].surname,users[_address].age);
}
}
I get 2 errors first one is :
TypeError: Type struct NewHello.user memory is
not implicitly convertible to expected type string storage ref.
users[_address] = user(name,surname,age);
^--------------------^
TypeError: Member "name" not found
or not visible after argument-dependent lookup in string storage ref.
anyone can help me please ?
mapping(address => user) public users
?