Created
June 28, 2022 18:20
-
-
Save fassko/5b19bee0c78e3e41aa5d52573b2e696e to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.7+commit.e28d00a7.js&optimize=false&runs=200&gist=
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: Unlicense | |
pragma solidity ^0.8.0; | |
contract Memory { | |
struct LuckyNumber { | |
uint256 number; | |
string reason; | |
} | |
mapping(address => LuckyNumber) luckyNumbers; | |
function addLuckyNumber(LuckyNumber memory luckyNumber) external { | |
require(luckyNumber.number != 0, "Lucky number can't be 0!"); | |
require(luckyNumbers[msg.sender].number == 0, "You already have set lucky number. Edit it if you have another one."); | |
luckyNumbers[msg.sender] = luckyNumber; | |
} | |
function editLuckyNumber(uint256 luckyNumber) external { | |
require(luckyNumber != 0, "Lucky number can't be 0!"); | |
require(luckyNumbers[msg.sender].number != 0, "You don't have a lucky number set yet."); | |
LuckyNumber storage _luckyNumber = luckyNumbers[msg.sender]; | |
// LuckyNumber memory _luckyNumber = luckyNumbers[msg.sender]; -- This won't work, because of "memory" keyword | |
_luckyNumber.number = luckyNumber; | |
} | |
function getMyLuckyNumber() external view returns(uint256) { | |
require(luckyNumbers[msg.sender].number != 0, "You don't have a lucky number set yet."); | |
LuckyNumber memory luckyNumber = luckyNumbers[msg.sender]; | |
return luckyNumber.number; | |
} | |
function multiplyByItself(uint256 number) external pure returns(uint256) { | |
uint256 result = number * number; | |
return result; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment