or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Syncing
xxxxxxxxxx
eth智能合約 前置作業
本文章不定期更新, 如果有錯誤請跟我說,謝謝
編譯器版本 0.4.25+
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →已發佈的合約1
eth 智能合約
一個標準的 ERC20 智能合約需具備的函式有
關鍵字
emit 事件使用
revert 該次交易會失敗
建立第一個智能合約專案
合約佈署後,就不能夠修改 ( 聽勇者說有熱更新 )
所有的節點都會執行一次 合約內容, 且執行內容都會一致
上傳修改 都要花手續費
萬一某次執行合約有錯誤,整批更新都不算,會回滾
資料儲存在區塊鍊上(因永久有效手續費比較貴),資料儲存在此次交易的暫存記憶體上, 手續費就比較便宜
沒有float資料型態
宣告變數時, 就要預先知道數值的範圍, 然後給予可以容納的範圍 ( uint16 = 2^16 )
bytes = 8bit * 1 = 8bit => 可以儲存 0xab
bytes2 = 8bit * 2 = 16bit => 可以儲存 0xabcd
bytes32 = 8bit * 4 = 256bit => 拿來存放 block.blackhash(4);
建構子
佈署合約時會執行一次
可以有船入參數, 但不能有回傳值
函式保留字

事件
純粹用來記錄, etherscan拿來記錄轉幣紀錄(token)

記錄購買者是誰? 買多少?
紀錄轉帳給誰? 轉多少?
ERC20的規範
智能合約實做下列函式

approve 來同意 誰 可以使用我的代幣
之後用 transferFrom 來 轉代幣
交易原理
轉幣是透過智能合約來轉換
來源 自己的小狐狸錢包地址
目的 合約地址
圖解

疑惑
我佈署好的合約

我用新版的 remax IDE 之後
我點下方的 url 沒辦法直接連到 合約?
正常點下方url, 轉到該筆交易去, 再點 contract合約, 即可跳到智能合約部分
程式碼要開源( Verify and Publish ),才看得懂記錄在紀錄啥

參考文章
鐵人賽-開發智能合約 - 序 (Day01)