Contract-Development

有什麼不同?

  • January 1, 2020

我注意到一些智能合約在智能合約中有創建者的錢包地址,以便將代幣發送到錢包,如範例 #1:

範例 #1:

constructor() public {
       symbol = "0PUCKS";
       name = "0 Pucks Token";
       decimals = 18;
       _totalSupply = 100000000000000000000000000;
       balances[0x5A86f0cafD4ef3ba4f0344C138afcC84bd1ED222] = _totalSupply;
       emit Transfer(address(0), 0x5A86f0cafD4ef3ba4f0344C138afcC84bd1ED222, _totalSupply);

但是在下面的範例 #2 中,智能合約程式碼中的創建者沒有可見的錢包地址:

範例:#2

contract BTClite is StandardToken, Ownable {

     string public constant name = "BTC LITE";
     string public constant symbol = "BTCL";
     uint8 public constant decimals = 8;

     uint256 public constant SUPPLY_CAP = 21000000 * (10 ** uint256(decimals));

     address NULL_ADDRESS = address(0);

當創建/部署範例 #2 的智能合約時,他們是否只是將代幣發送到部署並驗證合約的錢包?還是他們以另一種方式設置它?

標記只是變數上的數字。在契約 #1 中,他將變數設置_totalSupply為等於整數 the integer 100000000000000000000000000。然後他使數組上的整數值balances[0x5A86f0cafD4ef3ba4f0344C138afcC84bd1ED222]等於_totalSupply

在契約 #2 中,他對變數做同樣的SUPPLY_CAP事情,但他並沒有創建變數來說明任何使用者擁有多少。

總供應量只是一個變數,讓人們更容易知道有多少“數字”,而不是必要的,以至於您可以將供應量的價值低於您給所有者的數量。它們只是帶有值的變數。

一旦您了解令牌只是數字,而不是“真實的”,令牌就失去了它的魔力,它們不一定需要來往或來自任何地方。這一切都是合乎邏輯的。

它是可選的事情。

在第一個範例中,他們通過使用特殊的建構子給自己一個預挖。建構子創建合約的初始狀態。

在第二個例子中,如果他們願意,他們可以在建構子中做同樣的事情,但不是每個人都這樣做。

引用自:https://ethereum.stackexchange.com/questions/66945