Code Examples
Here are 10 code samples in Solidity demonstrating various concepts and functionalities.
1. Simple Storage Contract
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleStorage {
uint256 storedData;
function set(uint256 x) public {
storedData = x;
}
function get() public view returns (uint256) {
return storedData;
}
}2. Basic ERC20 Token
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract BasicERC20Token {
string public name = "BasicToken";
string public symbol = "BTK";
uint8 public decimals = 18;
uint256 public totalSupply;
mapping(address => uint256) balances;
mapping(address => mapping(address => uint256)) allowed;
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
constructor(uint256 initialSupply) {
totalSupply = initialSupply * 10 ** uint256(decimals);
balances[msg.sender] = totalSupply;
}
function balanceOf(address owner) public view returns (uint256) {
return balances[owner];
}
function transfer(address to, uint256 value) public returns (bool) {
require(to != address(0), "Invalid address");
require(value <= balances[msg.sender], "Insufficient balance");
balances[msg.sender] -= value;
balances[to] += value;
emit Transfer(msg.sender, to, value);
return true;
}
function approve(address spender, uint256 value) public returns (bool) {
allowed[msg.sender][spender] = value;
emit Approval(msg.sender, spender, value);
return true;
}
function transferFrom(address from, address to, uint256 value) public returns (bool) {
require(to != address(0), "Invalid address");
require(value <= balances[from], "Insufficient balance");
require(value <= allowed[from][msg.sender], "Allowance exceeded");
balances[from] -= value;
balances[to] += value;
allowed[from][msg.sender] -= value;
emit Transfer(from, to, value);
return true;
}
function allowance(address owner, address spender) public view returns (uint256) {
return allowed[owner][spender];
}
}3. Voting Contract
4. Simple Auction Contract
5. Crowdfunding Contract
6. Multi-Signature Wallet
7. Lottery Contract
8. Time-Locked Wallet
9. Decentralized Marketplace
10. Decentralized Library
These examples cover a range of functionalities, including simple storage, tokens, voting, auctions, crowdfunding, multi-signature wallets, lotteries, time-locked wallets, decentralized marketplaces, and libraries. Each contract demonstrates key Solidity concepts and patterns.
Last updated