CAPITAL CORP. SYDNEY

73 Ocean Street, New South Wales 2000, SYDNEY

Contact Person: Callum S Ansell
E: callum.aus@capital.com
P: (02) 8252 5319

WILD KEY CAPITAL

22 Guild Street, NW8 2UP,
LONDON

Contact Person: Matilda O Dunn
E: matilda.uk@capital.com
P: 070 8652 7276

LECHMERE CAPITAL

Genslerstraße 9, Berlin Schöneberg 10829, BERLIN

Contact Person: Thorsten S Kohl
E: thorsten.bl@capital.com
P: 030 62 91 92

Ethereum, Solidity & React

Ethereum, Solidity & React

What is Ethereum?

1.       Introduction

2.       Link to Github Repo

3.       A Short History Lesson

4.       What is Ethereum?

5.       Interfacing with Ethereum Networks

6.       Metamask Setup

7.       Ethereum Accounts

8.       Receiving Ether

9.       What’s a Transaction?

10.   Why’d We Wait?

11.   A Quick Note

12.   Basic Blockchains

13.   Block Time

14.   Smart Contracts

15.   The Solidity Programming Language

16.   Our First Contract

17.   Contract Structure

18.   Function Declarations

19.   Testing with Remix

20.   Redeploying Contracts

21.   Behind the Scenes of Deployment

22.   More on Running Functions Than You Want to Know

23.   Wei vs Ether

24.   Gas and Transactions

25.   Mnemonic Phrases

26.   Getting More Ether

Smart Contracts with Solidity

1.       Don’t Skip! Node JS Versioning

2.       Contract Deployment

3.       Boilerplate Requirements

4.       Project File Walkthrough

5.       Syntax Highlighters

6.       Compiling Solidity

7.       The Compile Script

8.       Testing Architecture

9.       Running Windows?

10.   Installing Modules

11.   Web3 Versioning

12.   Web3 Providers

13.   Testing with Mocha

14.   Mocha Structure

15.   Fetching Accounts from Ganache

16.   Refactor to Async/Await

17.   Deployment with Web

18.   Deployed Inbox Overview

19.   Asserting Deployment

20.   Web3 Version Fix

21.   Verifying the Initial Message

22.   Testing Message Updates

23.   Deployment with Infura

24.   Infura Signup

25.   Wallet Provider Setup

26.   Deployment to Rinkeby

27.   Observing Deployment on Etherscan

28.   Deployed Contracts in Remix

29.   Project Review

Advanced Smart Contracts

  1. The Lottery Contract
  2. Lottery Design
  3. Basic Solidity Types
  4. Starting the Lottery Contract
  5. The Message Global Variable
  6. Overview of Arrays
  7. Overview of Mappings and Structs
  8. Big Solidity Gotcha
  9. Entering the Lottery
  10. Validation with Require Statements
  11. The Remix Debugger
  12. Pseudo Random Number Generator
  13. Selecting a Winner
  14. Sending Ether from Contracts
  15. Resetting Contract State
  16. Requiring Managers
  17. Function Modifiers
  18. Returning Players Array
  19. Contract Review
  20. New Test Setup
  21. Test Project Updates
  22. Test Helper Review
  23. Asserting Deployment
  24. Entering the Lottery
  25. Asserting Multiple Players
  26. Try-Catch Assertions
  27. Testing Function Modifiers
  28. End to End Test
Building Interactive Front-Ends

1.       Ethereum App Architecture

2.       Application Overview

3.       Getting Started with Create-React-App

4.       Multiple Web3 Instances

5.       Web3 Setup6

6.       Deploying the Lottery Contract

7.       Local Contract Instances

8.       Rendering Contract Data

9.       Instance Properties

10.   Accessing More Properties

11.   The ‘Enter’ Form

12.   Form Setup

13.   Entering the Lottery

14.   Picking a Winner

15.   Project Review

 

Real Projects with Ethereum

1.       Solving Real Problems with Contracts

2.       Fixing Kickstarter’s Issues

3.       Campaign Contract Design

4.       Campaign Constructor

5.       Contributing to the Campaign

6.       A Quick Test

7.       The Request Struct

8.       More on Function Modifiers

9.       Creating Struct Instances

10.   Instance Creation Syntax

11.   Storage and Memory

12.   More on Storage vs Memory

13.   Voting System Requirements

14.   The Wrong Voting System

15.   Issues with Arrays

16.   Mappings vs Arrays

17.   Basics of Mappings

18.   Refactoring to Mappings

19.   Refactoring Request Stucts

20.   More on Struct Initialization

21.   Approving a Request

22.   Testing Request Approvals

23.   Finalizing a Request

24.   Last Remix Test

25.   Thinking about Deployment

26.   Solution to Deployment

27.   Adding a Campaign Factory

28.   Testing the Factory

Ethereum Project Infrastructure

1.       Project Setup

2.       Directory Structure

3.       A Better Compile Script

4.       Single Run Compilation

5.       More on Compile

6.       Test File Setup

7.       Creating Campaign Instances

8.       Testing Warmup

9.       Accessing Mappings

10.   Requiring Minimum Contributions

11.   Array Getters

12.   One End to End Test

13.   Deployment

14.   Refactoring Deployment

 

Advanced Multi-Page Front-Ends

1.       App Mockups

2.       CRA vs Next

3.       Next’s Pages Architecture

4.       Basics of Next Routing

5.       Root Routes

6.       CampaignFactory Instance

7.       Getting a Test Campaign

8.       Fetching Deployed Campaigns

9.       Why Next.js, Anyways?

10.   Server vs Client Web3 Instances

11.   GetInitialProps Function

12.   Semantic UI React

13.   Card Group Setup

14.   Rendering Card Groups

15.   Adding CSS

16.   Adding a Button

17.   The Need for a Layout

18.   The Layout Component

19.   Assembling a Header

20.   Constraining Content Width

21.   Two Column Layout

22.   Nested Routing

23.   Final CSS Fix

24.   Form Creation

25.   Input Change Handlers

26.   Form Submittal

27.   Testing Submittal

28.   Form Error Handling

29.   Button Spinners

30.   Routing Issues

31.   Next Routes Setup

32.   Automatic Navigation

33.   Header Navigation

34.   Routing to Campaigns

35.   Restarting the Server

36.   Route Mappings

37.   Planning CampaignShow

38.   Redeploying CampaignFactory

39.   CampaignShow’s GetInitialProps

40.   Accessing a Campaign

41.   Summary Translation Layer

42.   Custom Card Groups

43.   One Card Per Property

44.   The Contribute Form

45.   Grid Layouts

46.   Form State

47.   Communicating the Campaign Address

48.   Making a Contribution

49.   Refreshing Contract Data

50.   Spinners and Error Handlers

51.   Listing Requests

52.   Grids vs Columns

53.   More Routing!

54.   Request Creation Form

55.   Creating a Request

56.   Form Polish

57.   Creating a Request

58.   Requests One by One

59.   Fancy Javascript

60.   Small Typo!

61.   Rendering a Table

62.   Request Row Component

63.   Request Row Content

64.   Approvers Count Cell

65.   Approving a Request

66.   Finalizing Requests

67.   Testing Finalization

68.   Row Status Styling

69.   Finishing Requests Index

70.   Wrapup

Basic React

1.       Purpose of Boilerplate Projects

2.       Environment Setup

3.       Project Setup

4.       JSX1

5.       More on JSX4

6.       ES6 Import Statements

7.       ReactDOM vs React

8.       Component Instances

9.       Render Targets

10.   Component Structure

11.   Youtube Search API Signup

12.   Export Statements

13.   Class Based Components

14.   Handling User Events

15.   Introduction to State

16.   State Continued

17.   Controlled Components

18.   Breather and Review

19.   Youtube Search Response

20.   Refactoring Functional Components to Class Components

21.   Props

22.   Building Lists with Map

23.   List Item Keys

24.   Video List Items

25.   Detail Component and Template Strings

26.   Handling Null Props

27.   Video Selection

28.   Styling with CSS

29.   Searching for Videos

30.   Throttling Search Term Input

31.   React Wrapup

32.   Vue Flavored Version