Ethereum and Solidity: The Complete Developer’s Guide
-
What is Ethereum?Introduction0sCourse ResourcesA Short History Lesson0sLink to Original Bitcoin White PaperWhat is Ethereum?0sInterfacing with Ethereum Networks0sMetamask Setup and ConfigurationEthereum Accounts0sGetting Test Ether to Use in the CourseWhat’s a Transaction?0sWhy’d We Wait?0sA Quick Note About the Next LectureBasic Blockchains0sBlock Time0sSmart Contracts0sThe Solidity Programming Language0sUpdated Remix Instructions for new UI – Do Not SkipOur First Contract0sContract Structure0sFunction Declarations0sDeploying Contract in New Remix UITesting with Remix0sRedeploying Contracts0sBehind the Scenes of Deployment0sMore on Running Functions Than You Want to Know0sWei vs Ether0sGas and Transactions0sMnemonic Phrases0sWe Need More Test Ether!0sObtaining More Test Ether from Recommended Faucet
-
Smart Contracts with SolidityInstalling Node.js, npm and GitContract Deployment0sProject Requirements0sStarter Project FilesProject File Walkthrough0sCompiling Solidity0sInvalid asm.js or Constructor Deprecation WarningThe Compile Script0sTesting Architecture0sInstalling Modules0sWeb3 Versioning0sWeb3 Providers0sTesting with Mocha0sMocha Structure0sFetching Accounts from Ganache0sRefactor to Async/Await0sDeployment with Web30sDeployed Inbox Overview0sAsserting Deployment0sVerifying the Initial Message0sTesting Message Updates0sDeployment with Infura0sInfura (Metamask Developer) SignupSuper Important Note about Seed / Recovery Phrase SecurityWallet Provider Setup0sDeployment to Testnet0sObserving Deployment on Etherscan0sRemix Permissions and MetamaskDeployed Contracts in Remix0sProject Review0sUpdating Your Inbox Project to Solc v0.8.19
-
Advanced Smart ContractsThe Lottery Contract0sLottery Design0sReminder on Updated Remix UIBasic Solidity Types0sStarting the Lottery Contract0sThe Message Global Variable0sOverview of Arrays0sOverview of Mappings and Structs0sBig Solidity Gotcha0sEntering the Lottery0sValidation with Require Statements0sThe Remix Debugger0sPseudo Random Number Generator0sSelecting a Winner0sSending Ether from Contracts0sResetting Contract State0sRequiring Managers0sFunction Modifiers0sReturning Players Array0sContract Review0sNew Test Setup0sTest Project Updates0sTest Helper Review0sAsserting Deployment0sEntering the Lottery0sAsserting Multiple Players0sTry-Catch Assertions0sTesting Function Modifiers0sEnd to End Test0s
-
Building Interactive Front-EndsEthereum App Architecture0sApplication Overview0sRequired React App BoilerplateGetting Started with Our React Project0sMultiple Web3 Instances0sRequired Update for Web3 and Metamask PermissionsWeb3 Setup0sDeploying the Lottery Contract0sLocal Contract Instances0sRendering Contract Data0sInstance Properties0sAccessing More Properties0sThe ‘Enter’ Form0sForm Setup0sEntering the Lottery0sPicking a Winner0sProject Review0sUpdating Your Lottery Project to Solc v0.8.19Refactoring React App From Class to Functional Component
-
Real Projects with EthereumSolving Real Problems with Contracts0sFixing Kickstarter’s Issues0sCampaign Contract Design0sReminder on Updated Remix UICampaign Constructor0sContributing to the Campaign0sA Quick Test0sThe Request Struct0sMore on Function Modifiers0sCreating Struct Instances0sInstance Creation Syntax0sStorage and Memory0sMore on Storage vs Memory0sVoting System Requirements0sThe Wrong Voting System0sIssues with Arrays0sMappings vs Arrays0sBasics of Mappings0sRefactoring to Mappings0sRefactoring Request Stucts0sMore on Struct Initialization0sApproving a Request0sTesting Request Approvals0sFinalizing a Request0sLast Remix Test0sThinking about Deployment0sSolution to Deployment0sAdding a Campaign Factory0sTesting the Factory0s
-
Ethereum Project InfrastructureStarter Project FilesDirectory Structure0sA Better Compile Script0sSingle Run Compilation0sMore on Compile0sWeb3 v4 and Ganache Breaking Change ReminderTest File Setup0sCreating Campaign Instances0sTesting Warmup0sAccessing Mappings0sRequiring Minimum Contributions0sArray Getters0sOne End to End Test0sDeployment0sRefactoring Deployment0s
-
Advanced Multi-Page Front-EndsApp Mockups0sCRA vs Next0sNext’s Pages Architecture0sBasics of Next Routing0sRoot Routes0sRequired Web3 Update – Do Not SkipCampaignFactory Instance0sReminder on Updated Remix UIGetting a Test Campaign0sFetching Deployed Campaigns0sWhy Next.js, Anyways?0sRequired Web3 Update for ConditionalServer vs Client Web3 Instances0sGetInitialProps Function0sSemantic UI React0sCard Group Setup0sRendering Card Groups0sAdding CSS0sAdding a Button0sThe Need for a Layout0sSuggestion Regarding a Default Export WarningThe Layout Component0sAssembling a Header0sConstraining Content Width0sTwo Column Layout0sNested Routing0sFinal CSS Fix0sForm Creation0sInput Change Handlers0sForm Submittal0sTesting Submittal0sForm Error Handling0sButton Spinners0sRouting Issues0sNext Routes Setup0sAutomatic Navigation0sHeader Navigation0sRouting to Campaigns0sRestarting the ServerRoute Mappings0sPlanning CampaignShow0sRedeploying CampaignFactory0sCampaignShow’s GetInitialProps0sAccessing a Campaign0sSummary Translation Layer0sCustom Card Groups0sOne Card Per Property0sThe Contribute Form0sGrid Layouts0sForm State0sCommunicating the Campaign Address0sMaking a Contribution0sRefreshing Contract Data0sSpinners and Error Handlers0sListing Requests0sGrids vs Columns0sMore Routing!0sRequest Creation Form0sCreating a Request0sForm Polish0sCreating a Request0sRequests One by One0sFancy Javascript0sSmall Typo!Rendering a Table0sRequest Row Component0sRequest Row Content0sApprovers Count Cell0sApproving a Request0sFinalizing Requests0sTesting Finalization0sRow Status Styling0sFinishing Requests Index0sWrapup0sUpdating Your Campaign Project to Solc v0.8.9
-
Appendix: Basic ReactA Note on This SectionPurpose of Boilerplate Projects0sEnvironment Setup0sProject Setup0sJSX0sMore on JSX0sES6 Import Statements0sReactDOM vs React0sComponent Instances0sRender Targets0sComponent Structure0sYoutube Search API Signup0sExport Statements0sClass Based Components0sHandling User Events0sIntroduction to State0sState Continued0sControlled Components0sBreather and Review0sYoutube Search Response0sRefactoring Functional Components to Class Components0sProps0sBuilding Lists with Map0sList Item Keys0sVideo List Items0sDetail Component and Template Strings0sHandling Null Props0sVideo Selection0sStyling with CSS0sSearching for Videos0sThrottling Search Term Input0sReact Wrapup0sVue Flavored Version
-
Extras
Smart Contracts? They’re here. The Ethereum Blockchain? Covered. Solidity? Yep!
There can be no understating it: Ethereum and Blockchain technology is the most disruptive force in years. Companies cannot hire developers who understand blockchain technologies fast enough, but there are a tiny number of resources published to help you truly understand what blockchains are used for, let alone build apps with them. That’s the purpose of this course: to be the best resource online for learning about Ethereum, blockchains, and how to build apps with this new technology.
The development community is still figuring out the best way to use Ethereum in the creation of new and exciting apps. I spent a tremendous amount of time to research and create best practice for interfacing with Ethereum from Javascript. I can’t overstate it enough; this course will show you the best and most easily repeatable patterns for creating production-ready apps with Ethereum.
What tools and libraries are used?
The Ethereum tech ecosystem is in constant change. Don’t be fooled by other courses that mention how you’ll learn a dozen different libraries! Every library that you’ll use with Ethereum breaks and is deprecated on a near-weekly basis! Instead, this course will teach you how to assemble your own boilerplate package to develop, compile, and test Smart Contracts. By learning the core technologies, you’ll be prepared to adjust to Ethereum no matter how the ecosystem changes.
What is Ethereum?
Ethereum is a cryptocurrency much like Bitcoin, and it has been heralded as Bitcoins successor. Whereas Bitcoin currently has issues scaling with an increasing backlog of transactions, Ethereum is poised to surpass Bitcoin in performance, popularity, and value. Ethereum was created to help developers like you create applications focused around transferring money or value from one party to another.
What is Solidity?
Solidity is a programming language for writing Smart Contracts. Essentially, think of it as a way to control a bank account with code. With Solidity, we can write applications that simulate a crowd funding campaign, a lottery, a loan, or any other type of financial instrument. Don’t be intimidated by learning ‘another’ programming language; Solidity is known to be quite similar to Javascript and exceptionally easy to pick up for anyone who has previous JS experience. This course will give you all the tools you need to master Solidity.
What's included
- 23.5 hours on-demand video
- 38 articles
- 135 downloadable resources
- Access on mobile and TV
- Certificate of completion