簡綱
- 區塊鏈技術框架
- 區塊鏈語言學習
2. 智能合約
Solidity語言
變數宣告
- 本地
- 狀態
- 全域
資料型別
- bool
- int
- uint
- int8
- uint8
- (地址型別)
- address
- address payable(可接受轉賬)
- 定長位元組組
- bytes1
- bytes2
- …
- bytes32
- 參考
- 結構體
- 陣列(使用習慣與平常語言區別較大)
- 動/靜態
- 多維
- 映射
- (/)
儲存區域
指定參考型別儲存的資料區域(基礎型別可以不指定)
- memory
- storage
- calldata
陣列操作函式
可見性
預設值(internal)
- public
- private
- internal*
- external*
2陳述句
例外檢測
- require()//回傳剩余gas
- arrest()//清除所有gas
- revert()//聯合error陳述句
- catch()//與 1 2使用
事件event
- 宣告
- 觸發
修飾器
modifier
函式 視圖 純函式
純函式pure不可修改或讀取狀態
將函式宣告為視圖view不可進行狀態修改
認為是修改狀態的情況:
認為是讀狀態的情況:
回退函式
曾造成安全漏洞
ERC20標準
介面內容
1.代幣的名字
function name() constant public returns (string name);
2.代幣的簡稱,例如:HMB
function symbol() public constant returns (string symbol);
3.代幣的最小分割量 token使用的小數點后幾位,比如如果設定為3,就是支持0.001表示
function decimals() public constant returns (uint8 decimals);
4.token的總量
function totalSupply() public constant returns (uint totalSupply);
5.余額 回傳某個地址(賬戶)的賬戶余額
function balanceOf(address _owner) public constant returns (uint balance);
6.轉賬 交易代幣 從訊息發送者賬戶中往_to賬戶轉數量為_value的token,
從代幣合約的呼叫者地址上轉移 _value的數量token到的地址 _to
【注意:并且必須觸發Transfer事件】
function transfer(address _to, uint _value) public returns (bool success);
7.兩個地址轉賬
從賬戶_from中往賬戶_to轉數量為_value的token,與approve方法配合使用
從地址 _from發送數量為 _value的token到地址 _to
【注意:并且必須觸發Transfer事件】
transferFrom方法用于允許合約代理某人轉移token,條件是from賬戶必須經過了approve,*/
function transferFrom(address _from, address _to, uint _value) public returns (bool success);
8.批準_spender能從合約呼叫賬戶中轉出數量為_value的token
function approve(address _spender, uint _value) public returns (bool success);
9.獲取_spender可以從賬戶_owner中轉出token的剩余數量
function allowance(address _owner, address _spender) public constant returns (uint remaining);
2個事件
1.發生轉賬時必須要觸發的事件,transfer 和 transferFrom 成功執行時必須觸發的事件
event Transfer(address indexed _from, address indexed _to, uint _value);
2.當函式 approve(address _spender, uint256 _value)成功執行時必須觸發的事件
event Approval(address indexed _owner, address indexed _spender, uint _value);
10.存盤(映射)對賬號的控制:mapping(owner => mapping(spender => amount)) allowed
第一個address表示token擁有者
第二個address表示授權的spender,即spender代理消費owner的token
第三個amout表示代理的數量
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/289923.html
標籤:區塊鏈
上一篇:MEXC Global:去中心化金融(DeFi)如何變革企業金融服務?
下一篇:以太坊基礎知識
