Created
July 11, 2021 20:23
-
-
Save sagarduwal/65795273b0b2cc514169d2f2b39605cd to your computer and use it in GitHub Desktop.
Full example of Struct in Solidity
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// SPDX-License-Identifier: GPL-3.0 | |
pragma solidity >=0.7.0 <0.9.0; | |
contract StructDemo { | |
struct User { | |
uint256 level; | |
uint256 status; | |
} | |
mapping(address => User) public userList; | |
address[] public userAddresses; | |
constructor() { | |
User memory userDetail = User(1, 1); | |
userList[msg.sender] = userDetail; | |
userAddresses.push(msg.sender); | |
} | |
function updateUserLevel(address _userAddress, uint256 _userLevel) public { | |
User storage userDetail = userList[_userAddress]; | |
userDetail.level = _userLevel; | |
} | |
function getUserDetail(address _userAddress) | |
public | |
view | |
returns (uint256, uint256) | |
{ | |
return (userList[_userAddress].level, userList[_userAddress].status); | |
} | |
function createUserRecord( | |
address _userAddress, | |
uint256 _level, | |
uint256 _status | |
) public returns (uint256 newUserIndex) { | |
User storage newRecord = userList[_userAddress]; | |
newRecord.level = _level; | |
newRecord.status = _status; | |
userAddresses.push(_userAddress); | |
newUserIndex = userAddresses.length - 1; | |
} | |
function createUserRecordTwo( | |
address _userAddress, | |
uint256 _level, | |
uint256 _status | |
) public returns (uint256 newUserIndex) { | |
userList[_userAddress] = User({level: _level, status: _status}); | |
userAddresses.push(_userAddress); | |
newUserIndex = userAddresses.length - 1; | |
} | |
function getUsers() public view returns (address[] memory) { | |
return userAddresses; | |
} | |
function numberOfUsers() public view returns (uint256) { | |
return userAddresses.length; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment