Series of notes and implementations with the journey of mastering solidity.
That's the simplest implementation of a Will contract. It works based on a regular ping by the owner. If the owner fails to interact with the contract for a specified amount of days, he's considered dead and his heirs can claim all the contracts funding. It was developed in response to a issue on Open Zeppelin, but was substituted by a more complete version.
A contract that implements a dutch auction as an ICO model. It's a bit uncommon, but I find it particularly interesting, because it really reflects market interest. It matches specially well with a mintable token, as only the bought amount of tokens will be minted, avoiding a possibly big devaluation of the price right after the sale.
Promoted by Nick Johnson, the first contest aims to explore exploits in solidity, focusing on ICO schemes. I explored a way to artificially inflate token price on a Dutch Auction ICO. I got 3rd place!
A simple contract that allows any child contract to receive ERC20 tokens safely, without the risk of them getting stuck.
It's a useful way of executing other contract's code, as if it's your own contract. That pattern is used to make a project more modular, separating functionalities in many contracts but also keeping a consistent address.
Here's a interesting edge case. You can create a new contract with it's balance being greater than 0. How? Turns out that contract addresses are deterministic, which mean that one can find out a contract address before it's deployed. Another interesting feature is that anyone can forcibly send ether to another contract, even without triggering the fallback function. I explored this caveat in my entry for USCC.