0. Solidity Road Map + 小練習

更新於 2024/06/12閱讀時間約 5 分鐘
raw-image


1. Basic | Book

  1. 型別 Types 與變數 Variables - booleans, integer, string, address - 01:04:02
  2. Data Structures 資料結構 - array, mapping, struct, enum - 50:14
  3. Extend 繼承 - 04:24
  4. 流程控制 Selection and Repetition 迴圈 For loop, while - 15:36
  5. Modifier 修飾符 - 14:50
  6. 異常處理 Handling Exception - require, assert, revert, try/catch - 20:05
  7. Event 事件 - 21:35
  8. Interface 介面 - 21:48
  9. Receive  - 09:20
  10. Virtual & Override - 10:27
  11. Operator 算術運算子 - 03:09
  12. Relational Operator 關係運算子 - 03:51
  13. Memory Allocation 記憶體配置 - Storage, Memory, Calldata - 13:02
  14. Bitwise 位元運算 - 08:14 太難懂
  15. TryCatch - 08:48
  16. Function
  • Returns - 12:21
  • Visibility 可視性 - public, private, external, internal - 20:48
  • State Mutability 可變性 - pure, view, payable - 13:49
  • Fallback - 06:53
  • 鏈上智能合約互動 1:01:01

2. ERC20

  1. 多簽錢包的設計 - 23:02
  2. 如何 10 分鐘做一個 ERC20 Rug Pull 項目 - 06:51
  3. UsingFor 引用 Library - 03:12
  4. SafeERC20 - 03:28

3. ERC721

  1. ERC721 NFT 發行實作 - 20:28
  2. 荷蘭拍多功能實作 - 19:09

4. Homework

  1. 基礎題 1 解答說明: 發行總量100億顆、位數 18 的代幣 - 07:15
  2. 基礎題 2 解答說明: 發行總量 10 張的 SBT - 07:39
  3. 基礎題 3 解答說明:開發猜數字的合約 - 06:06
  4. 進階題 1 解答 發行盲盒 NFT 並完成解盲 - 23:31
  5. 進階題 2 解答: 實作 ERC721A 並比較 ERC721 與 ERC721A 在 Mint 與 Transfer 下 Gas fee 差異 - 09:13

5. Others

  1. IPFS 與 Pinata 服務使用 - 22:08
  2. 如何安全的在鏈上生成隨機數 Chainlink VRF - 23:50
  3. 利用 block.timestamp 產生隨機數種子 - 15:04
  4. 如何節省手續費?如何應用白名單機制 - Array 與 Mapping 的差異性 - 23:11
  5. 如何節省手續費?如何應用白名單機制 - Merkle Tree 介紹與實作範例 - 34:50


[Solidity 小練習] (page 1-13)

1. 寫一個按下get() Function 會回傳168888的智能合約

// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;

contract myContract {
function get() public pure returns (uint) {
return 168888;
}
}
function get 168888

function get 168888

  • get() 函數被聲明為 pure,這意味著它不會讀取或修改合約的狀態,只是返回一個固定的值。

2. Solidity 是編譯型語言還是直譯型語言?

直譯型, 要先由編譯器轉成bytecode餵給EVM, 才能成功部署在區塊鏈上。

3. 佈署智能合約在以太坊區塊鏈上可視為何種行為:

A. 交易 transaction

佈署一個智能合約時,實際上是在向區塊鏈提交一筆交易,將合約代碼和相關的元數據(例如合約初始化參數)包含在其中。這筆交易被廣播到網絡上,並且由礦工進行驗證和打包到一個區塊中。一旦交易被包含在區塊中,智能合約就會被成功部署到區塊鏈上,並且可以進行後續的調用和交互。

B. 鑄造 Minting

鑄造是指創建新的加密貨幣或代幣的過程。

C. 分岔 Fork

分岔是區塊鏈中的一種事件,指的是區塊鏈的歷史記錄因為協議變更或其他原因而分成兩個或多個不同的版本。這可能是有意的(硬分岔),也可能是非意的(軟分岔)。硬分岔會導致區塊鏈的分裂,形成新的分支,而軟分岔則是暫時的,不會導致永久的分裂。

D. 挖礦 Mining

挖礦是指通過計算機解決複雜的數學問題來確認和處理交易,以及創建新的區塊的過程。挖礦者通過解決這些問題來競爭新增區塊的權利,同時也獲得相應的獎勵,例如加密貨幣。在以太坊中,挖礦者使用計算能力參與挖礦,並且在成功挖出新區塊後獲得以太幣作為獎勵。


[Reference]

  1. 區塊鏈工程師 VIP 開發社群 (實戰營精華課程與最新技術教學), KryptoCamp 區塊鏈人才培育第一品牌
  2. 區塊鏈全端工程師實戰營, KryptoCamp 區塊鏈人才培育第一品牌
  3. 區塊鏈全端工程師線上實戰營, KryptoCamp 區塊鏈人才培育第一品牌
  4. Solidity 教學: 基本介紹 Introduction - 智能合約、環境建置與版本控制, KryptoCamp - 區塊鏈工程師與智能合約教學, 2024-02-27
  5. 完整掌握智能合約!成為獨立開發Dapp 的區塊鏈工程師
    尋大神腳印, 亦步亦趨。
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract EarthquakeAlertSystem { // 定義地震警報事件 event EarthquakeAlert(string message, ui
    這個合約將管理校慶運動會的基本信息和操作,並且包含了特定的運動會活動,如校內運動會的規則和獎勵制度。 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract SportsFestival { struct Part
    Storage、Memory和Calldata是用於定義變量存儲位置的關鍵字,它們各自有不同的適用情境和用法。 Storage Storage是用於存儲合約狀態變量的位置。這些變量存儲在區塊鏈上,並且在合約的生命週期內持續存在。Storage變量的變化會影響合約的狀態,並且會持久化存儲在區塊鏈上
    interface的主要作用是定義合約的函數規範,但不包含具體的實現。它提供了一種清晰的方式來描述合約之間的互動方式,從而使得不同的合約可以進行互操作性。 學校圖書館系統, 包括兩個主要的合約:Library合約和Student合約。 Library合約:這個合約負責管理圖書館的書籍,包括書籍的
    ForLoop // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract ArtAuction { mapping(uint => uint) public artworks; uint public con
    // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract GiftShop { mapping(address => uint) public loyaltyPoints; mapping(string =>
    // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract EarthquakeAlertSystem { // 定義地震警報事件 event EarthquakeAlert(string message, ui
    這個合約將管理校慶運動會的基本信息和操作,並且包含了特定的運動會活動,如校內運動會的規則和獎勵制度。 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract SportsFestival { struct Part
    Storage、Memory和Calldata是用於定義變量存儲位置的關鍵字,它們各自有不同的適用情境和用法。 Storage Storage是用於存儲合約狀態變量的位置。這些變量存儲在區塊鏈上,並且在合約的生命週期內持續存在。Storage變量的變化會影響合約的狀態,並且會持久化存儲在區塊鏈上
    interface的主要作用是定義合約的函數規範,但不包含具體的實現。它提供了一種清晰的方式來描述合約之間的互動方式,從而使得不同的合約可以進行互操作性。 學校圖書館系統, 包括兩個主要的合約:Library合約和Student合約。 Library合約:這個合約負責管理圖書館的書籍,包括書籍的
    ForLoop // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract ArtAuction { mapping(uint => uint) public artworks; uint public con
    // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract GiftShop { mapping(address => uint) public loyaltyPoints; mapping(string =>
    你可能也想看
    Google News 追蹤
    Thumbnail
    *合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
    Thumbnail
    眼、耳、鼻、舌、身-五感經驗中形塑出生活經驗,偶時深刻的鑄進記憶。
    Thumbnail
    或許這中間有一些個人造化的問題,比如說你失業是因為你偷老闆的錢
    漫漫人生,恍然如戲。生活則是另一部平淡幽深的著作。我翻閱著,那些屬於我的,或者擦身而過的一頁又一頁,潛藏在生活中的美好細節。 每天,我通車從一個城市越過另一個城市,再經過兩個,最後才抵達我的目的地。每天來回一趟的過程,是我一天當中最喜歡、享受的時光。 喜歡把日子摺疊成相似樣子的Eva*
    Thumbnail
    2022/06/07 【今日交易】 今天在9:20以前結束,後面就是加減看看, 但也真的肯定如果多做也不會賺, 比較有把握的時間大概也只有二三十分鐘, 至少可以肯定這段時間勝率會是最好的狀態了, 剩下的就慢慢體會,慢慢累積。 當沖含退:0
    Thumbnail
    【今日交易】 沒有買賣,沒有傷害。
    Thumbnail
    2022/05/17 【今日交易】 每天的行情都著實不容易,今天主要是跟3535纏鬥了一整天, 在他身上總共停損30張,但是在最後只用兩張居然把整天的虧損全部打回來, 雖然逆轉是開心,但是只買到兩張也有點尷尬, 只能說雖然可惜,但至少可以了。 當沖含退:-0
    Thumbnail
    2022/01/20 【今日交易】 一樣看了整天甚麼也沒有, 不是說股票都沒動,而是動的方式掌握不到 久久動一下,對於日內交易來說應該相對容易一些 不過既然花了這麼多時間磨練急短線, 自然也不可能短時間就能學會別人的技能 就順其自然到封關吧 只能期待年後的行情了! 當沖含退:0
      古時。有一名很會說話的人,他可以輕易用話語,遊說任何人,並換取他想要的利益,和人生。那時,他有時一天只說一句話,就得到了一整天的伙食開銷。有人問他怎麼做到的,他卻總是抬頭笑笑:「跌落谷底之後,發現什麼都可以擁有。」   有一天這個人消失了,大家找到這名青年的家中,才發現,這名青年,當初所得到的東
    Thumbnail
    *合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
    Thumbnail
    眼、耳、鼻、舌、身-五感經驗中形塑出生活經驗,偶時深刻的鑄進記憶。
    Thumbnail
    或許這中間有一些個人造化的問題,比如說你失業是因為你偷老闆的錢
    漫漫人生,恍然如戲。生活則是另一部平淡幽深的著作。我翻閱著,那些屬於我的,或者擦身而過的一頁又一頁,潛藏在生活中的美好細節。 每天,我通車從一個城市越過另一個城市,再經過兩個,最後才抵達我的目的地。每天來回一趟的過程,是我一天當中最喜歡、享受的時光。 喜歡把日子摺疊成相似樣子的Eva*
    Thumbnail
    2022/06/07 【今日交易】 今天在9:20以前結束,後面就是加減看看, 但也真的肯定如果多做也不會賺, 比較有把握的時間大概也只有二三十分鐘, 至少可以肯定這段時間勝率會是最好的狀態了, 剩下的就慢慢體會,慢慢累積。 當沖含退:0
    Thumbnail
    【今日交易】 沒有買賣,沒有傷害。
    Thumbnail
    2022/05/17 【今日交易】 每天的行情都著實不容易,今天主要是跟3535纏鬥了一整天, 在他身上總共停損30張,但是在最後只用兩張居然把整天的虧損全部打回來, 雖然逆轉是開心,但是只買到兩張也有點尷尬, 只能說雖然可惜,但至少可以了。 當沖含退:-0
    Thumbnail
    2022/01/20 【今日交易】 一樣看了整天甚麼也沒有, 不是說股票都沒動,而是動的方式掌握不到 久久動一下,對於日內交易來說應該相對容易一些 不過既然花了這麼多時間磨練急短線, 自然也不可能短時間就能學會別人的技能 就順其自然到封關吧 只能期待年後的行情了! 當沖含退:0
      古時。有一名很會說話的人,他可以輕易用話語,遊說任何人,並換取他想要的利益,和人生。那時,他有時一天只說一句話,就得到了一整天的伙食開銷。有人問他怎麼做到的,他卻總是抬頭笑笑:「跌落谷底之後,發現什麼都可以擁有。」   有一天這個人消失了,大家找到這名青年的家中,才發現,這名青年,當初所得到的東