All Projects → ConsenSys-Academy → simple-bank-exercise

ConsenSys-Academy / simple-bank-exercise

Licence: other
Implement a simple bank contract in Solidity

Programming Languages

javascript
184084 projects - #8 most used programming language
solidity
1140 projects

Simple Bank Exercise

SimpleBank is a Truffle project that contains a starter contract, migration and Truffle JavaScript test files. In this exercise you are going to implement the SimpleBank.sol contract.

Setting The Stage

We want to create a depository institution on the Ethereum blockchain, and we need your help!
The bank should be able to enroll new users and allow them to make deposits / widthdrawals!

Files

  • contracts/SimpleBank.sol : the partial implementation of a Solidity Contract you will complete.
  • test/simpleBank.test.js : the Truffle test file that describes the behavior of a correct SimpleBank contract.

Requirements

  1. Latest truffle version.
    npm -g uninstall truffle && npm -g install truffle
  2. Your preferred code editor.
  3. Familiarity with terminals.

Instructions

Follow the comments outlined in SimpleBank.sol to implement its functionality. The test are there to determine correct contract behavior as well as guide you through the implementation.

The general workflow is to use Test Drive Development's red green process:

  1. Run truffle test from a terminal.
  2. Use the failed test output along with the hints in contracts/SimpleBank.sol to make the test pass.

Note: Truffle will default to use a Solidity 0.5.x compiler with this contract as-is. To use the latest 0.8.x compiler, please comment out lines 9-14 in truffle-config.js.

Note on testing

Check out the testing files to see how tests are implemented in JavaScript. We will go over the details of implementing tests later in the curriculum. Of course, if you have questions, do reach out in Discord, or schedule an Office Hour session with one of our mentors.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].