Chapter 6. The Fundraiser Application

Now that we have successfully built and deployed our “Hello, World!” application, let’s continue our journey into building smart contracts by creating an application to allow beneficiaries to receive donations in ether. This application was chosen as a way for us to explore working with ether in our contracts and how we can use data structures to track balances over time, similar to what you would find in token contracts.

By building this application, we will take a closer look at Solidity, including learning more about constructors, getter and setter methods, structs and events, and a few other helpful tips along the way.

Before we start writing code, let’s take a moment to understand the application that we are about to build.

Application Overview

Our application is going to help a beneficiary, such as a nonprofit, or any other entity that may be looking for funding. The beneficiary will have an address set up on a service like Coinbase so that they can easily sell the ether and convert it to USD. With the Ethereum address being managed by Coinbase, the beneficiary will not have access to the private key and therefore cannot interact with a DApp from that address. This is where a custodian address can help.

The custodian address is another Ethereum address that either the beneficiary controls directly or someone operating on behalf of the beneficiary will own. This address can interact with a DApp, and it is this address that will be given ...

Get Hands-On Smart Contract Development with Solidity and Ethereum now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.