更新:前往Cyfrin上升氣流
重要的是:由於硬漢工具發生了變化,因此不再積極維護此存儲庫。該視頻與代碼不同步,您仍然可以跟隨視頻,但是您可能需要對工具和依賴項的更改進行故障排除。還請注意,自製作視頻以來,最佳實踐已經發展。
如果您想繼續使用更多最新材料繼續培訓,可以查看Cyfrin上升的培訓。該內容是由Patrick&Cyfrin <3的愛開發的。但是,請注意,Cyfrin上升氣流訓練使用了鑄造廠,而不是硬漢,因此將涉及工具更改。
Web3,完整的堆棧堅固,智能合約和區塊鏈 - 專家最終課程的初學者| JavaScript版

歡迎來到存儲庫的最終Web3,完整的堆棧固體和智能合約 - 專家全課程的初學者| JavaScript Edition FreecodeCamp課程!
鏈接到視頻:https://www.youtube.com/watch?v=gymwxujrbjq
所有代碼引用均具有JavaScript和打字稿版本。
推薦的測試網:Sepolia
由於Rinkeby和Kovan是日落,我們已更新了與Sepolia合作的回購,而Goerli是一場災難。讓我們知道任何更改是否打破了東西!
測試網龍頭
主水龍頭:https://faucets.chain.link備用水龍頭:https://sepoliafaucet.com/
配x與本課程相關的所有代碼僅用於演示目的。他們尚未經過審核,不應被視為生產準備。請自行使用。
本課程的資源
問題
- Github討論
- 堆棧交換以太坊
- stackoverflow
目錄
資源
- 測試網龍頭
- 本課程的資源
- 目錄
第0課:兔子洞的邊緣
- 歡迎參加課程!
- 最佳實踐
第1課:區塊鏈基礎知識
- 什麼是區塊鏈?區塊鏈做什麼?
- 智能合約的目的
- 其他區塊鏈好處
- 到目前為止,智能合約做了什麼?
- 進行第一次交易
- 煤氣I:氣體簡介
- 區塊鏈如何工作?
- 簽署交易
- 氣II
- 高級區塊鏈基本面
第2課:歡迎進行混音!簡單存儲
- 介紹
- 建立第一筆合同
- 基本堅固:類型
- 基本堅固:功能
- 基本堅固:陣列和結構
- 基本堅固性:編譯器錯誤和警告
- 內存,存儲,calldata(介紹)
- 映射
- 部署您的第一個合同
- 第2課的EVM&A回顧
第3課:混音儲存廠
- 介紹
- 基本堅固:將合同進口到其他合同中
- 基本堅固:與其他合同互動
- 基本堅固:繼承和覆蓋
- 第3課回顧
第4課:混音資助我
- 介紹
- 通過功能發送ETH並恢復
- 連鎖鏈接和甲骨文
- 評論發送ETH並與ChainLink合作
- 界面和價格提要
- 從GitHub和NPM導入
- 穩固性浮點數學
- 基本堅固:陣列和結構II
- 評論Interfacs,從GitHub進口和堅固性數學
- 庫
- safemath,溢出檢查和“未選中”的鍵法
- 基本堅固:循環
- 基本堅固:重置數組
- 從合同中發送ETH
- 基本堅固:構造函數
- 基本堅固:修飾符
- TestNet演示
- 先進的堅固性
第5課:Ethers.js簡單存儲
- 有效的調試策略並獲得幫助
- 安裝和設置
- Mac&Linux設置
- Windows設置
- gitpod
- 本地發展簡介
- 微小的JavaScript複習
- JavaScript中的異步編程
- 彙編我們的堅固性
- Ganache&Networks
- Ethers.js簡介
- 添加交易替代
- 交易收據
- 發送ethersjs的“原始”交易
- 與ethersjs中的合同互動
- 環境變量
- 更好的私鑰管理
- 可選的漂亮格式
- 部署到測試網或主網
- 在UI上驗證Block Explorer
- 煉金術儀表板和Mempool
- 第5課回顧
第6課:硬漢簡單存儲
- 介紹
- HardHat設置
- Hardhat設置繼續
- 從Hardhat部署簡單
- 硬漢的網絡
- 程序驗證
- 與硬漢的合同互動
- 文物故障排除
- 自定義HardHat任務
- HardHat Localhost節點
- 硬漢控制台
- 硬漢測試
- Hardhat Gas Reporter
- 固體覆蓋範圍
- Hardhat Waffle
- 第6課回顧
第7課:Hardhat資助我
- 介紹
- HardHat設置 - 資助我
- 覆蓋
- HardHat設置 - 資助我 - 繼續
- 從NPM導入
- HardHat部署
- 嘲笑
- UTILS文件夾
- testnet演示 - 硬漢資助我
- 堅固風格指南
- 測試我
- 斷點和調試
- 氣III:
- Console.Log&Debugging
- 測試基金我ii
- 堅固的存儲
- 使用存儲知識進行氣體優化
- 堅固性鏈條樣式指南
- 存儲評論
- 分期測試
- 在本地節點上運行腳本
- 將腳本添加到您的軟件包。
- 推到github
- ?發推文(添加您的回購)!
第8課:HTML / JavaScript Fund Me(完整堆棧 /前端)
- 介紹
- 網站如何使用Web3錢包
- HTML設置
- 將HTML連接到MetAmask
- 自己的文件中的javascript
- ES6 vs nodejs
- 從網站發送交易
- 在metamask中重置帳戶
- 聆聽活動和完成的交易
- 輸入表格
- 從區塊鏈閱讀
- 提取功能
- 第8課回顧
第9課:Hardhat智能合同彩票
- 介紹
- HardHat設置 - 智能合同彩票
- 抽獎。 SOL設置
- 事件簡介
- 抽獎活動的活動
- Chainlink VRF簡介
- 實施ChainLink VRF-簡介
- 實施ChainLink VRF-請求
- 實施連鎖鏈接VRF-滿足
- 鍊鍊鏈接飼養員簡介
- 實施鍊鍊接守護者 - 檢查
- 實施鍊鍊接守護者 - 檢查繼續
- 實施連鎖鏈接守護者 - PerformupKeep
- 代碼清理
- 部署抽獎活動
- 抽獎。 SOL單元測試
- Hardhat方法和時間旅行
- 呼叫
- 抽獎。 SOL分期測試
- 測試網絡測試
- 結論
- 打字稿 - 智能合約彩票
第10課:NextJS智能合約彩票(完整堆棧 /前端)
- 介紹
- NextJS設置
- 手動標題i
- 手動標題II
- 使用效果鉤
- 本地存儲
- isweb3enabledloading
- web3uikit
- nextj中的通話函數簡介
- 自動恆定值UI Updater
- RunContractFunction
- 美國
- 在NextJ中調用函數
- Usenotification
- 閱讀和顯示合同數據
- 關於
onSuccess的註釋 - 對你的挑戰
- 尾風與造型
- 託管您的網站簡介
- IPFS
- 在IPF上託管
- 使用Fleek託管IPFS和Filecoin
- Filecoin概述
- 第10課回顧
第11課:Hardhat入門套件
第12課:Hardhat Erc20
- 什麼是ERC?什麼是EIP?
- 什麼是ERC20?
- 手動創建ERC20令牌
- 用openzeppelin創建ERC20令牌
- 第12課回顧
第13課:Hardhat Defi&Aave
- 什麼是defi?
- 什麼是ave?
- 程序性借貸和貸款
- 韋斯 - 包裹的ETH
- 分叉的主網
- 沉積到Aave中
- 從Aave借來
- 與艾滋病償還
- 可視化交易
- 第13課回顧
- 與奧斯汀·格里菲斯(Austin Griffith)一起快樂的弓領帶
第14課:Hardhat NFTS(有關NFT的所有信息)
- 什麼是NFT?
- 代碼概述
- HardHat設置
- 基本NFT
- 隨機IPFS NFT
- 映射鍊鍊接VRF請求
- 創建稀有的NFT
- 設置NFT圖像
- 設定NFT薄荷價格
- 部署腳本
- 使用Pinata上傳令牌圖像
- 用Pinata上傳令牌URI(元數據)
- 部署
- 測試
- 動態SVG鍊鍊NFT
- 高級:EVM Opcodes,編碼和調用
- Abi.Encode&abi.ConcodePacked
- 編碼功能調用簡介直接
- 編碼功能調用簡介回顧
- 直接編碼函數調用
- 創建NFT Tokenuri鏈
- 使NFT動態
- 部署腳本
- 將NFT部署到測試網絡
- 第14課回顧
第15課:NextJS NFT市場(如果您完成了本課程,那麼您是一個全棧怪物!)
- 介紹
- 第一部分:NFT市場合同
- HardHat設置
- nftmarketplace.sol
- 重新進入
- nftmarketplace.sol-續
- nftmarketplace.sol-部署腳本
- nftmarketplace.sol-測試
- nftmarketplace.sol-腳本
- 第二部分:Moralis前端
- 什麼是馬利亞人?
- NextJS設置
- 加尾風
- Web3中的索引簡介
- 將Moralis連接到我們當地的HardHat節點
- Moralis事件同步
- 道德云功能
- 道德云功能ii
- 查詢Moralis數據庫
- 渲染NFT圖像
- 更新清單模式
- 購買NFT上市
- 列出待售的NFT
- 第三部分:圖形前端
- 介紹
- 什麼是圖?
- 建造子圖
- 部署我們的子圖
- 從圖中讀取
- 主持我們的DAPP
第16課:HardHat升級
- 可升級的智能合約概述
- 升級類型
- 授權
- 小代理示例
- 透明的可升級智能合約
第17課:Hardhat Daos
- 介紹
- 什麼是dao?
- 如何建造道
第18課:安全與審計
- 介紹
- 滑行
- 模糊和ETH安全工具箱
- 結束思想
更多資源
第0課:兔子洞的邊緣
歡迎參加課程!
⌨️(00:00:00)課0:歡迎來到區塊鏈
最佳實踐
- 遵循存儲庫:通過該課程,請確定要與GitHub存儲庫一起遵循。如果您遇到問題,請檢查存儲庫中的時間順序更新。
- 在社區中保持活躍:提出問題並與其他開發人員互動,在“討論”選項卡中,請務必打個招呼或通用汽車!這個空間與其他行業不同,您不必秘密。與他人進行交流,網絡和學習:)
- 按照自己的速度學習:這是否需要您一天,一個星期,一個月甚至一年的時間都沒關係。進度>>>完美
- 休息一下:如果您全力以赴,一口氣看整個課程,您會筋疲力盡,並減少回憶。建議每25分鐘提出每25分鐘的休息時間,每2小時需要更長的30分鐘休息時間
- 請參閱文檔:事情正在不斷更新,因此,每當帕特里克打開一些文檔,打開它的結局,甚至可能在您旁邊有代碼示例。
第1課:區塊鏈基礎知識
⌨️(00:09:05)第1課:區塊鏈基礎知識
什麼是區塊鏈?區塊鏈做什麼?
- 比特幣白皮書
- 以太坊白皮書
- 什麼是智能合同?
- 尼克·薩博(Nick Szabo)
- 混合智能合約
- 區塊鏈甲骨文
- 術語
- Web3
- 什麼是區塊鏈
智能合約的目的
⌨️(00:18:27)智能合約的目的
- ?原始視頻
- ?我的Eth Denver談話
- ?麥當勞醜聞
- ⛓有關協議的演變的更多信息
- ✍️智能合約是什麼?
- ?區塊鏈如何工作?
- ?連鎖鏈接和甲骨文
其他區塊鏈好處
⌨️(00:30:41)其他區塊鏈好處
- 分散的
- 透明度和靈活性
- 速度和效率
- 安全與不變性
- 對手風險刪除
- 信任最小化協議
到目前為止,智能合約做了什麼?
⌨️(00:36:36)到目前為止,智能合約做了什麼?
進行第一次交易
⌨️(00:39:17)進行第一次交易
- metamask下載鏈接
- etherscan
- Sepolia Etherscan
- Sepolia水龍頭(檢查鏈接令牌合同頁面)
- 注意:ChainLink文檔在其鏈接令牌合同頁面上始終具有最新的水龍頭。如果上面的水龍頭破裂,請檢查鍊鍊接文檔是否最新的水龍頭。
- 或者,使用Sepolia Eth faucet,只需確保將您的元掩體換成塞波利亞即可!
煤氣I:氣體簡介
⌨️(00:58:59)煤氣I:氣體簡介
區塊鏈如何工作?
⌨️(01:05:32)區塊鏈如何工作
簽署交易
⌨️(01:22:55)簽署交易
氣II
⌨️(01:30:22)煤氣II:Block Rewards&EIP 1559
煤氣II摘要
⌨️(01:36:44)煤氣II摘要
高級區塊鏈基本面
[⌨️(01:39:32)高級區塊鏈基本面] https://www.youtube.com/watch?v=gymwxujrbjq&t=5972S()
???????????????完成的區塊鏈基礎知識! ???????????????
第2課:歡迎進行混音!簡單存儲
⌨️(02:01:16)第2課:歡迎進行混音!簡單存儲
代碼:https://github.com/patrickalphac/simple-storage-fcc
介紹
⌨️(02:03:05)簡介
建立第一筆合同
⌨️(02:05:18)建立您的第一份合同
- 版本控制
- 在您的代碼中做筆記!
- 什麼是軟件許可證
- SPDX許可證
- 編譯
- 合同聲明
基本堅固:類型
⌨️(02:12:28)基本堅固類型
- 類型和聲明變量
uint256 , int256 , bool , string , address , bytes32- 堅固類型
- 位和字節
- 默認初始化
- 評論
基本堅固:功能
⌨️(02:18:40)基本堅固功能
- 功能
- 部署合同
- 調用公共國家改變國家的功能
- 能見度
- 氣III |一個例子
- 範圍
- 查看和純函數
基本堅固:陣列和結構
⌨️(02:35:30)基本的堅固陣列和結構
基本堅固性:編譯器錯誤和警告
⌨️(02:45:35)基本堅固性錯誤和警告
內存,存儲,calldata(介紹)
⌨️(02:46:34)基本的固體記憶,存儲和Calldata(intro)
映射
⌨️(02:50:17)基本的堅固映射
部署您的第一個合同
⌨️(02:53:38)部署您的第一筆合同
- 測試網或主網
- 連接metamask
- 在這裡找到水龍頭
- 查看此讀數頂部的水龍頭!
- 與已部署的合同互動
第2課的EVM&A回顧
⌨️(03:03:07)第2課的EVM&A回顧
第3課:混音儲存廠
⌨️(03:05:34)第3課:混音存儲工廠
代碼:https://github.com/patrickalphac/storage-factory-fcc
介紹
⌨️(03:06:06)簡介
基本堅固:將合同進口到其他合同中
⌨️(03:07:29)將合同進口到其他合同中
基本堅固:與其他合同互動
⌨️(03:16:36)與其他合同互動
基本堅固:繼承和覆蓋
⌨️(03:25:23)繼承和覆蓋
第3課回顧
⌨️(03:30:29)第3課回顧
第4課:混音資助我
⌨️(03:31:55)第4課:混音資助我
代碼:https://github.com/patrickalphac/fund-me-fcc
介紹
通過功能發送ETH並恢復
- 交易中的字段
- 有關v,r,s的更多信息
- 應付
- MSG.VALUE及其他全局關鍵字
- 要求
- 恢復
連鎖鏈接和甲骨文
- 什麼是區塊鏈甲骨文?
- 甲骨文問題是什麼?
- 連鎖鏈接
- 連鎖鏈接價格提要(數據提要)
- 連鎖鏈接VRF
- 連鎖鏈接守護者
- 鍊鍊接API調用
- 將令牌進口到您的元評分
- 請求並接收鍊鍊接模型
評論發送ETH並與ChainLink合作
界面和價格提要
- 連鎖鏈接價格提要(數據提要)
- 連鎖鏈接GitHub
- 介面
從GitHub和NPM導入
穩固性浮點數學
基本堅固:陣列和結構II
審查界面,從GitHub導入和堅固性數學
庫
safemath,溢出檢查和“未選中”的關鍵字
- Openzeppelin Safemath
- 未檢查與檢查
基本堅固:循環
基本堅固:重置數組
從合同中發送ETH
基本堅固:構造函數
基本堅固:修飾符
TestNet演示
先進的堅固性
不變且恆定
- 不變
- 持續的
- 當前的ETH氣價
- 不要強調氣體優化! (然而)
- 命名約定
自定義錯誤
接收和後備功能
第4課回顧
???????????????完成了堅固的基礎知識! ???????????????
第5課:Ethers.js簡單存儲
⌨️(05:30:42)第5課:Ethers.js簡單存儲
代碼:https://github.com/patrickalphac/ethers-simple-storage-fcc
?煉金術:https://alchemy.com/?a=673c802981
有效的調試策略並獲得幫助
⌨️(5:30:46)有效的調試狀態並獲得幫助
- 修補匠和孤立問題
- 對於本課程,至少需要15分鐘才能找出錯誤。
- Google / Web搜索確切的問題
- 轉到此GitHub回購 /討論
- 在諸如stack Exchange以太坊或堆棧溢出之類的論壇上詢問問題
- 格式化您的問題! !
- 使用MARKDOWN
如何調試任何視頻
安裝和設置
- Visual Studio代碼
- nodejs
- vscode鍵鍵
- git
- 什麼是終端?
Mac&Linux設置
Windows設置
- WSL
- 在WSL工作時,使用Linux命令代替Windows命令
- 故障排除
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
配x請使用gitpod作為絕對的最後手段
gitpod
- gitpod
- 如果使用此功能,切勿在GitPod上與真實錢共享私鑰
- 理想情況下,您可以弄清MacOS,Linux或Windows安裝
本地發展簡介
CMD + K或CTRL + K清除端子mkdir ethers-simple-storage-fcc-
code .在新的Vscode窗口中打開VSCODE
可選的JavaScript崩潰課程
Nodejs課程
JavaScript課程
導入您的SimpleStorage.sol
固體 +硬漢VSCODE擴展
用以下方式格式化您的堅固碼
"[solidity]": {
"editor.defaultFormatter": "NomicFoundation.hardhat-solidity"
},
"[javascript]":{
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
在您的.vscode/settings.json文件中。
微小的JavaScript複習
JavaScript中的異步編程
- 異步編程
- 異步關鍵字
- 在JavaScript中承諾
- 等待關鍵字
彙編我們的堅固性
Ganache&Networks
- Ganache
- metamask中的網絡
- RPC URL
- 格斯
- JSON RPC規格遊樂場
Ethers.js簡介
- ethers.js
- 較漂亮的plugin-seligency
等待關鍵字的註釋
添加交易替代
交易收據
在ethers.js中發送“原始”交易
與Ethers.js中的合同互動
環境變量
更好的私鑰管理
可選的漂亮格式
部署到測試網或主網
- 煉金術
- 從metamask獲取私鑰
CTRL + C停止任何終端命令
在UI上驗證Block Explorer
煉金術儀表板和Mempool
第5課回顧
打字稿以太詞簡單存儲
第6課:硬漢簡單存儲
⌨️(08:20:17)第6課:硬漢簡單存儲
代碼:https://github.com/patrickalphac/hardhat-simple-storage-fcc
介紹
⌨️(08:20:19)簡介
HardHat設置
⌨️(08:22:47)HARDHAT設置
故障排除硬盤設置
⌨️(08:29:43)故障排除HardHat設置
Hardhat設置繼續
⌨️(08:31:48)HARDHAT設置繼續
從Hardhat部署簡單
⌨️(08:33:10)從Hardhat部署Simplestorage
硬漢的網絡
⌨️(08:41:44)HARDHAT中的網絡
程序化驗證
⌨️(08:51:16)編程驗證
- Etherscan驗證教程
- Etherscan文檔
- Hardhat-Etherscan
- Etherscan API鍵
- javascript == vs =====
與硬漢的合同互動
⌨️(09:06:37)與Hardhat中的合同互動
文物故障排除
⌨️(09:09:42)偽影故障排除
自定義HardHat任務
⌨️(09:10:52)自定義HardHat任務
HardHat Localhost節點
⌨️(09:18:12)HARDHAT LOCALHOST節點
硬漢控制台
⌨️(09:23:11)硬漢控制台
硬漢測試
⌨️(09:26:13)硬漢測試
Hardhat Gas Reporter
⌨️(09:38:10)Hardhat Gas Reporter
- Hardhat Gas Reporter
- CoinMarketCap API
固體覆蓋範圍
⌨️(09:44:40)固體覆蓋
Hardhat Waffle
⌨️(09:47:02)Hardhat Waffle
第6課回顧
⌨️(09:47:37)第6課回顧
打字稿HardHat簡單存儲
⌨️(09:52:15)打字稿HardHat簡單存儲
yarn add --dev @typechain/ethers-v5 @typechain/hardhat @types/chai @types/node @types/mocha ts-node typechain typescript
第7課:Hardhat資助我
⌨️(10:00:48)第7課:Hardhat資助我
代碼:https://github.com/patrickalphac/hardhat-fund-me-fcc
介紹
⌨️(10:00:50)簡介
HardHat設置 - 資助我
⌨️(10:03:41)Hardhat設置 - 資助我
覆蓋
⌨️(10:06:20)
HardHat設置 - 資助我 - 繼續
⌨️(10:07:47)Hardhat設置 - 資助我 - 續
從NPM導入
⌨️(10:09:38)從NPM導入
HardHat部署
⌨️(10:10:43)HardHat部署
嘲笑
⌨️(10:21:05)嘲笑
- 嘲笑
- ave github
- 連鎖鏈接GitHub
- 多種版本的堅固性
- 標籤在Hardhat中
UTILS文件夾
⌨️(10:52:51)UTILS文件夾
testnet演示 - 硬漢資助我
⌨️(10:55:45)testnet演示 - HardHat資助我
打字稿
- 代碼文件(打字稿版)
- 在
helper-hardhat-config.ts文件中定義blockconfirations,而不是hardhat-config.js 。
堅固風格指南
⌨️(11:00:10)堅固風格指南
測試我
⌨️(11:08:36)測試基金
- 單位測試
- HardHat部署固定裝置
- ethers.getContract
- 預計
- ethers.utils.parseunits
- 華夫餅柴搭配者
斷點和調試
⌨️(11:30:39)斷點和調試
氣III
⌨️(11:33:40)煤氣III
Console.Log&Debugging
⌨️(11:36:35)Console.Log&Debugging
測試基金我ii
⌨️(11:37:31)測試基金ME II
堅固的存儲
⌨️(11:44:34)堅固的存儲
使用存儲知識進行氣體優化
⌨️(11:52:38)使用存儲知識的氣體優化
- opcodes
- 氣體通過氣體
- 氣體通過氣體
- 將
s_附加到存儲變量 - 將
i_附加到不變的變量 - 上限鎖定和下劃線恆定變量
堅固性鏈條樣式指南
⌨️(12:05:29)堅固性鍊鍊鏈接樣式指南
存儲評論
⌨️(12:09:59)存儲評論
分期測試
⌨️(12:11:43)登台測試
在本地節點上運行腳本
⌨️(12:17:58)在本地節點上運行腳本
將腳本添加到您的軟件包。
⌨️(12:22:00)將腳本添加到您的軟件包。
推到github
⌨️(12:25:17)推到Github
- github Quickstart
- 什麼是git?
- 我們在視頻中關注的快速啟動
- 了解git和github
?發推文(添加您的回購)!
第8課:HTML / JavaScript Fund Me(完整堆棧 /前端)
⌨️(12:32:57)第8課:html / javaScript Fund Me(完整堆棧 /前端)
代碼:https://github.com/patrickalphac/html-fund-me-fcc
介紹
網站如何使用Web3錢包
- 如何將您的智能合約連接到MetAmask
- 來自視頻的代碼:https://github.com/patrickalphac/full-stack-web3-metamask-connectors
- 視頻中的文章:https://betterprogramming.pub/everything-you-need-to-nead-to-know-about-fullstack-web3-94c0f1b18019?
HTML設置
- 實時服務器:ExtensionId:ritwickdey.liveserver
將HTML連接到MetAmask
自己的文件中的javascript
ES6 vs nodejs
- ES6 vs nodesjs
- 網絡瀏覽器的Ethers文檔
- 模塊與文本/JavaScript
從網站發送交易
- Web3Provider
- 將網絡添加到metamask
在metamask中重置帳戶
MetaMask - RPC Error:
[ethjs-query] while formatting ouputs from RPC '{"value":{"code":-32603,"data":{"code":-32000,"message":"Nonce too high. Expected nonce to be 2 but got 4. Note that transactions can't be queued when automining."}}}'
聆聽活動和完成的交易
輸入表格
從區塊鏈閱讀
提取功能
第8課回顧
可選鏈接:
第9課:Hardhat智能合同彩票
⌨️(13:41:02)第9課:HardHat智能合約彩票
代碼:https://github.com/patrickalphac/hardhat-smartcontract-lottery-fcc
介紹
HardHat設置 - 智能合同彩票
⌨️(13:43:43)HardHat設置
yarn add --dev @nomiclabs/hardhat-ethers@npm:hardhat-deploy-ethers ethers @nomiclabs/hardhat-etherscan @nomiclabs/hardhat-waffle chai ethereum-waffle hardhat hardhat-contract-sizer hardhat-deploy hardhat-gas-reporter prettier prettier-plugin-solidity solhint solidity-coverage dotenv
yarn add --dev @nomiclabs/hardhat-ethers@npm:hardhat-deploy-ethers ethers @nomiclabs/hardhat-etherscan @nomiclabs/hardhat-waffle chai ethereum-waffle hardhat hardhat-contract-sizer hardhat-deploy hardhat-gas-reporter prettier prettier-plugin-solidity solhint solidity-coverage dotenv @typechain/ethers-v5 @typechain/hardhat @types/chai @types/node ts-node typechain typescript
抽獎。 SOL設置
⌨️(13:46:55)抽獎
事件簡介
⌨️(13:54:02)事件簡介
抽獎活動的活動
⌨️(14:00:47)抽獎活動中的事件
Chainlink VRF簡介
⌨️(14:02:30)Chainlink VRF簡介
亞軍:連鎖鏈接VRF
- ChainLink VRFV2文檔
- Chainlink VRFV2演練
- 鍊鍊接合同
實施ChainLink VRF-簡介
⌨️(14:09:53)實施鍊鍊接VRF
Hardhat Shorthand
實施ChainLink VRF-請求
實施連鎖鏈接VRF-滿足
Modulo
鍊鍊鏈接飼養員簡介
實施鍊鍊接守護者 - 檢查
枚舉
實施鍊鍊接守護者 - 檢查繼續
實施連鎖鏈接守護者 - PerformupKeep
代碼清理
部署抽獎活動
模擬連鎖鏈接VRF協調員
持續
抽獎。 SOL單元測試
- 我們在開始時在描述塊中使用
async function ,但是稍後我們將它們正確取出。
測試活動和柴匹配者
繼續我
Hardhat方法和時間旅行
繼續II
呼叫
繼續iii
大規模的承諾測試
繼續IV
抽獎。 SOL分期測試
測試網絡測試
推薦的鏈條分期測試的鏈接金額:
- ChainLink VRF:2鏈接
- 連鎖鏈接守護者:8鏈接
結論
打字稿 - 智能合約彩票
???????????????完成了Hardhat基礎知識! ???????????????
第10課:NextJS智能合約彩票(完整堆棧 /前端)
⌨️(16:34:07)第10課:NextJS智能合約彩票(完整堆棧 /前端)
代碼:https://github.com/patrickalphac/nextjs-smartcontract-lottery-fcc
⚡️⚡️實時演示IPFS:ipfs:// qmxwacyjcs8tl7ukywimpqmqmqw9skzshuje4uszbsyqvueh
⚡️⚡️現場演示fleek:https://fancy-dream-3458.on.fleek.co/
介紹
我們進入前端使用NextJ。 NextJS是用於構建網站的React框架。
可選的子選項:完整的堆棧開發和其他圖書館
- 將DAPP連接到錢包的6種方法
- NextJS速效課程
- 其他React庫:
- Web3React
- 瓦格米
- 反應 - 摩爾利斯
- underapp
- Web3 -Modal
- USEMETAMASK
- 其他完整的堆棧Web3模板
- 腳手架
- 以太坊-boilerplate
- 創建Eth-App
- 反應很受歡迎
- 為什麼使用React?
NextJS設置
手動標題i
反應鉤
手動標題II
使用效果鉤
本地存儲
isweb3enabledloading
web3uikit
- web3uikit
- Web3Uikit交互式文檔
- Web3Uikit連接按鈕
nextj中的通話函數簡介
自動恆定值UI Updater
RunContractFunction
美國
在NextJ中調用函數
Usenotification
- 將
onError添加到您的所有runContractFunction調用中
閱讀和顯示合同數據
關於onSuccess的註釋
onSuccess只需檢查MetAmask是否發送交易,而不是
對你的挑戰
尾風與造型
- 學習CSS
- parwindcss
- Postcss擴展
- 尾風擴展
- 將尾風安裝到NextJS中
託管您的網站簡介
⌨️(18:12:50)引入託管您的網站
IPFS
⌨️(18:15:14)IPFS
在IPF上託管
⌨️(18:18:51)在IPFS上託管
- IPFS伴侶
- 勇敢的瀏覽器
yarn build && yarn next export
使用Fleek託管IPFS和Filecoin
⌨️(18:25:45)使用Fleek託管IPFS和Filecoin
Filecoin概述
⌨️(18:31:28)filecoin概述
第10課回顧
第11課:Hardhat入門套件
⌨️(18:51:36)第11課:硬漢入門套件
代碼:https://github.com/smartcontractkit/hardhat-starter-kit
第12課:Hardhat Erc20
⌨️(18:59:24)第12課:Hardhat Erc20
代碼:https://github.com/patrickalphac/hardhat-erc20-fcc
什麼是ERC?什麼是EIP?
什麼是ERC20?
- 視頻(使用布朗尼/python)
- EIP-20
- ERC-677
- EIP-777
手動創建ERC20令牌
用openzeppelin創建ERC20令牌
- 露天寶貝
- 露天海珀林合同
- 官員(openzeppelin替代方案)
第12課回顧
第13課:Hardhat Defi&Aave
⌨️(19:16:13)第13課:Hardhat Defi&Aave
代碼:https://github.com/patrickalphac/hardhat-defi-fcc
什麼是defi?
什麼是ave?
程序化借貸和貸款
韋斯 - 包裹的ETH
- Weth Token Sepolia Etherscan
- Weth Token Mainnet
分叉的主網
沉積到Aave中
從Aave借來
與艾滋病償還
可視化交易
第13課回顧
與奧斯汀·格里菲斯(Austin Griffith)一起快樂的弓領帶
- 特別嘉賓奧斯汀·格里菲斯(Austin Griffith)!
- 快速運行以太坊
更多的教學:
第14課:Hardhat NFTS(有關NFT的所有信息)
⌨️(20:28:51)第14課:Hardhat Nfts
代碼:https://github.com/patrickalphac/hardhat-nft-fcc
什麼是NFT?
代碼概述
HardHat設置
基本NFT
寫測試
隨機IPFS NFT
映射鍊鍊接VRF請求
創建稀有的NFT
設置NFT圖像
設定NFT薄荷價格
部署腳本
使用Pinata上傳令牌圖像
- 皮納塔
- nft.Storgor
- Pinata npm
- Pinata文檔
用Pinata上傳令牌URI(元數據)
部署
測試
動態SVG鍊鍊NFT
什麼是SVG?
初始代碼
BASE64編碼
高級:EVM Opcodes,編碼和調用
Abi.Encode&abi.ConcodePacked
- Abi.Encode
- Abi.Concodepacked感謝Alex Roan在本次會議上的幫助!
- 示例合同創建交易是什麼是ABI?
- EVM Opcodes
- 更多的EVM Opcodes
- 堅固的作弊地圖
- Abi.Encode vs abi.ConcodePacked
編碼功能調用簡介直接
編碼功能調用簡介回顧
直接編碼函數調用
創建NFT Tokenuri鏈
使NFT動態
部署腳本
將NFT部署到測試網絡
第14課回顧
額外信用:
- 解構堅固
- 了解和控制您的智能合同地址
- 從堅固到字節代碼
第15課:NextJS NFT市場(如果您完成了本課程,那麼您是一個全棧怪物!)
⌨️(23:37:03)第15課:NextJS NFT市場(全堆棧 /前端)
大型更新,請閱讀
Moralis最近通過自己的服務器更新了自託管服務器。為此,您可以執行以下操作之一:
- 學習如何運行自己
- 遵循以了解此更具交互應用的概念,而無需實際編碼
- 跳到我們與圖形互動的部分
TL; DR:圖形代碼應與視頻完全相同,但是Moralis代碼不會。
代碼:
- 後端(合同):https://github.com/patrickalphac/hardhat-nft-marketplace-fcc
- 前端(Moralis索引器):https://github.com/patrickalphac/nextjs-nft-marketplace-moralis-moralis-fcc
- Frontend(圖形索引):https://github.com/patrickalphac/nextjs-nft-marketplace-thegraph-fcc-fcc
- 圖:https://github.com/patrickalphac/graph-nft-marketplace-fcc
特別感謝Matt Durkin在本節方面的幫助。
介紹
第一部分:NFT市場合同
HardHat設置
nftmarketplace.sol
重新進入
- 重新進入
- rekt.news
- openzeppelin nonrectrant
nftmarketplace.sol-續
nftmarketplace.sol-部署腳本
nftmarketplace.sol-測試
nftmarketplace.sol-腳本
第二部分:Moralis前端
什麼是馬利亞人?
- 特別嘉賓伊万·利爾耶克斯特(Ivan Liljeqvist)
NextJS設置
加尾風
Web3中的索引簡介
將Moralis連接到我們當地的HardHat節點
- NextJS環境變量
- 反向代理FRP
- 道德論壇
- Moralis Admin Cli
Moralis事件同步
重置本地鏈
道德云功能
- 道德云功能
- Moralis記錄
- HardHat網絡參考
- Moralis數據庫僅確認具有塊確認的交易 - 因此,我們需要在HardHat Local節點上移動塊。
- 道德觸發
練習重置本地鏈
道德云功能ii
查詢Moralis數據庫
渲染NFT圖像
更新清單模式
購買NFT上市
列出待售的NFT
第三部分:圖形前端
介紹
什麼是圖?
建造子圖
- 示例子圖
- 圖工作室
- GraphQL VSCODE擴展
- GraphQl
部署我們的子圖
從圖中讀取
主持我們的DAPP
???????????????完成前端基礎知識! ???????????????
第16課:HardHat升級
⌨️(28:53:11)第16課:HardHat升級
代碼:https://github.com/patrickalphac/hardhat-upgrades-fcc
可升級的智能合約概述
升級類型
- 範圍
- 社交遷移
- 代理人
- 代理人
- 功能碰撞
- 存儲碰撞
- 變質升級
- 透明的
- UUP
- 鑽石
授權
小代理示例
透明可升級的智能合約
- Hardhat-Deploy代理
- OpenZeppelin升級插件
- HardHat部署升級示例
第17課:Hardhat Daos
⌨️(29:45:24)第17課:Hardhat Daos
⬆️代碼:https://github.com/patrickalphac/dao-template
視頻代碼:https://github.com/patrickalphac/hardhat-dao-fcc
介紹
什麼是dao?
如何建造道
- 如何建造道
- 那是帕特里克
- PY代碼
- Python視頻
- Openzeppelin治理
- 複合治理
- 合同嚮導
- castvotebysig
第18課:安全與審計
⌨️(31:28:32)第18課:安全與審計
代碼:https://github.com/patrickalphac/hardhat-security-fcc
介紹
滑行
模糊和ETH安全工具箱
結束思想
- 最佳實踐
- 攻擊
- 該死的脆弱的defi
- 以太奴
- 一些審核員:
恭喜
???????????????完成了課程! ???????????????
我現在要去哪裡?
了解更多
- 加密酮
- 帕特里克·柯林斯
- 達普大學
- 鏈殼
- Cami Ramos Garzon
- 阿爾伯特·胡
- 伊万·利爾杰維斯特(Ivan Liljeqvist)
- 艾莉·海爾(Ally Haire)
- 斯蒂芬·利林
- 吃塊
- 奧斯汀·格里菲斯(Austin Griffith)
- 納德·達比特(Nader Dabit)
- ethereum.org
社區
- 嘰嘰喳喳
- 硬漢不和諧
- 以太坊Python社區不和諧
- 鍊鍊鏈路不和諧
- 以太坊和不和諧
- Reddit Ethdev
黑客松
請務必查看項目贈款計劃!
並讓今天度過美好的一天!
謝謝
感謝所有參加,參加和參加本課程的人。這是我在Web3空間中學到的所有知識的熱情項目,也是一個數據轉儲,以使您迅速提高速度。另外,非常感謝Chainlink Labs鼓勵本課程亮起,並致力於許多鏈接鏈接實驗室的團隊成員,他們幫助了各種資產!