Solidity Notes
Solidity has basic structure like so
Contracts
contract NewContract {
uint data; // contract fields like this are in storage
constructor(uint _data) public {
pragma solidity ^0.4.24; | |
contract Fundraiser { | |
mapping(address=>uint) balances; | |
// VULNERABLE | |
function withdrawCoins(){ | |
uint withdrawAmount = balances[msg.sender]; | |
Wallet wallet = Wallet(msg.sender); | |
wallet.payout.value(withdrawAmount)(); |
// SPDX-License-Identifier: MIT | |
pragma solidity 0.8.11; | |
contract LemonadeStand { | |
address owner; | |
uint skuCount; | |
enum State { ForSale , Sold, Shipped } | |
// SPDX-License-Identifier: GPL-3.0 | |
pragma solidity >=0.7.0 <0.9.0; | |
contract myToken { | |
string public constant name = "Tokenomics"; | |
string public constant symbol = "TOK"; | |
uint8 public constant decimals = 18; // 18 is the most common number of decimal places | |
uint _totalSupply; |
// SPDX-License-Identifier: GPL-3.0 | |
pragma solidity >=0.7.0 <0.9.0; | |
contract EventsContract { | |
// Represents the time when the bidding will end | |
uint biddingEnds = block.timestamp + 5 days; | |
struct HighestBidder { | |
address bidder; | |
string bidderName; |
// SPDX-License-Identifier: GPL-3.0 | |
pragma solidity >=0.7.0 <0.9.0; | |
contract MainContract { | |
uint public value; | |
constructor (uint amount) { | |
value = amount; | |
} |
pragma solidity >=0.7.0 <0.9.0; | |
contract Modifiers2 { | |
uint public minimumOffer = 100; | |
modifier minimumAmount(){ | |
//Could also use require( msg.value >= minimumOffer) | |
if(msg.value >= minimumOffer){ | |
_; |
pragma solidity >=0.8.10; | |
contract FunctionsContract { | |
string ownerName; | |
uint8 ownerAge; | |
// Constructor | |
constructor (string memory name, uint8 age) public { | |
ownerName = name; |
pragma solidity >=0.4.24; | |
contract GlobalVariables { | |
string public lastCaller = "not-set"; | |
// Demonstrates the use of the ether subdenominations | |
function etherUnitsTest() public pure returns(bool) { | |
// True | |
bool value = (1 ether == 1000 finney); |
pragma solidity >=0.4.22 <0.9.0; | |
contract StringConversion { | |
function getStringElementAtIndex(uint index, string memory myString) public pure returns (byte){ | |
bytes memory stringToBytes = bytes(myString); | |
return stringToBytes[index]; | |
} | |
} |
Solidity has basic structure like so
contract NewContract {
uint data; // contract fields like this are in storage
constructor(uint _data) public {