前言
智能合約在區塊鏈上執行時,若修改合約內的狀態,需要支付 Gas。
名詞
Gas Price
願意支付的 Gas 單價。
Start Gas/Gas Limit
最多願意支付的總 Gas 數量。如果執行中消耗的 Gas 超過設定值則會中斷執行,而執行時消耗的 Gas 不會退還。
範例
function doMath(int a, int b) {
a + b;
b - a;
a * b;
a == 0;
}
根據 Opcodes for the EVM | ethereum.org
doMath
這個 function 內各個 operations 所需的 Gas 為:
Code | Name | Gas |
---|---|---|
a + b | ADD | 3 |
b - a | SUB | 3 |
a * b | MUL | 5 |
a == 0 | EQ | 3 |
需要 3+3+5+3 共 14 Gas。
若 Gas Price 設定為 300wei,則 total cost 為:
300 * 14 = 4200wei