In smart_contract_samples there's a collection of useful Ethereum smart contracts written in Solidity. The list so far is:
- SimpleContract.sol - Basic smart contract for test purposes.
- ERC20.sol - Standard token smart contract.
- ERC20_updated.sol - ERC20 standard Ethereum token smart contract updated for latest version of the Solidity compiler (0.4.21).
- Ownership.sol - Ownership smart contract. Used to ascertain ownership before executing functions.
- FaultTolerance.sol - Fault tolerance smart contract. Used to to freeze accounts if there are any problems.
- ProofOfExistence.sol - Smart contract that gives proof of existence to a document. used to create SHA hashes from input strings and store them into the Ethereum Blockchain.
- Deadline.sol - Deadline smart contract. Used to ascertain the expiration of a deadline before executing functions.
- Crowdsale.sol - Crowdsale smart contract. Used to raise funds for a project.
- Ballot.sol - Voting smart contract. Used to create voting processes and to issue votes
- RemotePurchase.sol - Smart contract that allows one to sell an asset through the Ethereum platform.
- RemotePurchaseCustomized.sol - Remote purchase smart contract customized and tested by me.
- SimpleAuction.sol - Basic auction smart contract. Allows bidding and closes the auction in a specific time.
- BlindAuction.sol - Auction that supports blind bids and fake bids.
- IsContract.sol - Library that has a function that can verify if an address is an EOA or a smart contract.
- StorageVSMemory.sol - Smart contract that shows some differences between the persistent memory and the non-persistent memory. In particular, the classic contrast of parameters by reference vs parameters by value is demonstrated.
- GeneralModifier.sol - Smart contract for a general purpose function modifier.
In tool_tests there are tests for some important development tools for Solidity smart contracts. So far they are:
- truffle_and_testrpc_test. A test for compiling, deploying and testing smart contracts locally with Truffle and testRPC.
- metamask_and_withpragma_test. A test for writing smart contracts with Withpragma, an online IDE, and deploying them with Metamask, a web broswer extension that allows light interaction with the Ethereum blockchain.
- web3_and_remix_test. A test for creating client-side applications that can interact with Ethereum based blockchains. Web3.js is the official Javascript library for Ethereum. Remix is an online IDE for Solidity.
And there's also solidity_notes.txt, my personal study notes so far about Solidity, smart contracts and the Ethereum platform.