Build a decentralized app with Solidity (Quickstart)VendingMachine.sol1// SPDX-License-Identifier: MIT2pragma solidity ^0.8.9;3 4contract VendingMachine {5 mapping(address => uint) private _cupcakeBalances;6 mapping(address => uint) private _cupcakeDistributionTimes;7 8 function giveCupcakeTo(address userAddress) public returns (bool) {9 if (_cupcakeDistributionTimes[userAddress] == 0) {10 _cupcakeBalances[userAddress] = 0;11 _cupcakeDistributionTimes[userAddress] = 0;12 }13 14 uint fiveSecondsFromLastDistribution = _cupcakeDistributionTimes[userAddress] + 5 seconds;15 bool userCanReceiveCupcake = fiveSecondsFromLastDistribution <= block.timestamp;16 17 if (userCanReceiveCupcake) {18 _cupcakeBalances[userAddress]++;19 _cupcakeDistributionTimes[userAddress] = block.timestamp;20 return true;21 } else {22 revert("HTTP 429: Too Many Cupcakes (you must wait at least 5 seconds between cupcakes)");23 }24 }25 26 function getCupcakeBalanceFor(address userAddress) public view returns (uint) {27 return _cupcakeBalances[userAddress];28 }29}// SPDX-License-Identifier: MIT pragma solidity ^0.8.9; contract VendingMachine { mapping(address => uint) private _cupcakeBalances; mapping(address => uint) private _cupcakeDistributionTimes; function giveCupcakeTo(address userAddress) public returns (bool) { if (_cupcakeDistributionTimes[userAddress] == 0) { _cupcakeBalances[userAddress] = 0; _cupcakeDistributionTimes[userAddress] = 0; } uint fiveSecondsFromLastDistribution = _cupcakeDistributionTimes[userAddress] + 5 seconds; bool userCanReceiveCupcake = fiveSecondsFromLastDistribution <= block.timestamp; if (userCanReceiveCupcake) { _cupcakeBalances[userAddress]++; _cupcakeDistributionTimes[userAddress] = block.timestamp; return true; } else { revert("HTTP 429: Too Many Cupcakes (you must wait at least 5 seconds between cupcakes)"); } } function getCupcakeBalanceFor(address userAddress) public view returns (uint) { return _cupcakeBalances[userAddress]; } }Console1 events[lab]Loaded VendingMachine.sol; compiler target solc 0.8.34.Ln 1, Col 129 lines · Solidity · 0.8.34