We use an Ethereum blockchain as the event state machine for the money transfer system. A blockchain in this role is used for storing the following:
- The mapping between telephone numbers and bank accounts
- The overall state of each transfer transaction
Inside the blockchain, there are two kinds of smart contracts. The first one implements the repository pattern, and the second one implements the entity model.
Here's a smart contract under the entities/ directory, TransferState.sol. This smart contract maintains ...