亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ERC20代幣標準怎么實現

發布時間:2021-12-16 16:39:45 來源:億速云 閱讀:125 作者:iii 欄目:互聯網科技

本篇內容介紹了“ERC20代幣標準怎么實現”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

pragma solidity ^0.4.20;

// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
contract NanToken {

    //Token
    //Methods
    //NOTE: Callers MUST handle false from returns (bool success). Callers MUST NOT assume that false is never returned!
    // 所有 returns (bool success) 的方法,都要考慮返回false的邏輯;

    //name
    //Returns the name of the token - e.g. "MyToken".
    //
    //OPTIONAL - This method can be used to improve usability, but interfaces and other contracts MUST NOT expect these values to be present.
    function name() view returns (string name);

    //symbol
    //Returns the symbol of the token.E.g. "HIX".
    //
    //OPTIONAL - This method can be used to improve usability, but interfaces and other contracts MUST NOT expect these values to be present.
    function symbol() view returns (string symbol);


    //decimals
    //Returns the number of decimals the token uses - e.g. 8, means to divide the token amount by 100000000 to get its user representation.
    //
    //OPTIONAL - This method can be used to improve usability, but interfaces and other contracts MUST NOT expect these values to be present.
    // 精度
    function decimals() view returns (uint8 decimals);
    //totalSupply
    //Returns the total token supply.

    function totalSupply() view returns (uint256 totalSupply);
    //balanceOf
    //Returns the account balance of another account with address _owner.
    // 總量
    function balanceOf(address _owner) view returns (uint256 balance);

    //transfer
    //Transfers _value amount of tokens to address _to, and MUST fire the Transfer event. The function SHOULD throw if the _from account balance does not have enough tokens to spend.
    //
    //Note Transfers of 0 values MUST be treated as normal transfers and fire the Transfer event.
    // 從當前地址轉指定量到指定地址
    // 若當前地址沒有足夠的余額,應該拋出異常
    // 每次調用成功,哪怕數量是0,都必須觸發 Transfer 事件;
    function transfer(address _to, uint256 _value) returns (bool success);

    //transferFrom
    //Transfers _value amount of tokens from address _from to address _to, and MUST fire the Transfer event.
    //
    //The transferFrom method is used for a withdraw workflow, allowing contracts to transfer tokens on your behalf. This can be used for example to allow a contract to transfer tokens on your behalf and / or to charge fees in sub- currencies. The function SHOULD throw unless the _from account has deliberately authorized the sender of the message via some mechanism.
    //
    //Note Transfers of 0 values MUST be treated as normal transfers and fire the Transfer event.
    // 用于提幣邏輯;
    // 每次調用成功必須觸發 Transfer 事件;哪怕數量是0;
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success);

    //approve
    //Allows _spender to withdraw from your account multiple times, up to the _value amount. If this function is called again it overwrites the current allowance with _value.
    //
    //NOTE : To prevent attack vectors like the one described here[https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh5DYKjA_jp-RLM/] and discussed here[https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729], clients SHOULD make sure to create user interfaces in such a way that they set the allowance first to 0 before setting it to another value for the same spender. THOUGH The contract itself shouldn't enforce it, to allow backwards compatibility with contracts deployed before
    // 允許指定的地址 分一次或多次從當前地址提幣;若再次調用此方法,則重置數量
    // 為避免攻擊,客戶端實現時應該先向某地址設置數量為0,再給相同的地址設置數量為 實際的數量;
    // 這為了向后兼容之前部署的合約,雖然不是強制要求
    function approve(address _spender, uint256 _value) returns (bool success);

    //allowance
    //Returns the amount which _spender is still allowed to withdraw from _owner.
    // 查詢 owner 授權給 spender 的剩余提幣數量
    function allowance(address _owner, address _spender) view returns (uint256 remaining);

    //Events
    //Transfer
    //MUST trigger when tokens are transferred, including zero value transfers.
    //
    //A token contract which creates new tokens SHOULD trigger a Transfer event with the _from address set to 0x0 when tokens are created.
    // token 被 成功 transfer 后,需要觸發Transfer 事件,哪怕數量為0;
    // 當創建一個新的token后,應該觸發Transfer 事件,
    event Transfer(address indexed _from, address indexed _to, uint256 _value);

    //Approval
    //MUST trigger on any successful call to approve(address _spender, uint256 _value).
    // 每次approve方法被成功調用后,都必須觸發 Approval事件;
    event Approval(address indexed _owner, address indexed _spender, uint256 _value)};
}

“ERC20代幣標準怎么實現”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

方山县| 伊宁市| 舞阳县| 双柏县| 桐梓县| 莒南县| 通道| 桐柏县| 无极县| 宣威市| 漯河市| 南陵县| 邮箱| 益阳市| 格尔木市| 乌兰浩特市| 武城县| 无棣县| 阿图什市| 新宁县| 冷水江市| 商洛市| 乌什县| 大足县| 潼南县| 北票市| 北川| 威信县| 类乌齐县| 神农架林区| 平乡县| 阿克陶县| 永川市| 铁岭县| 石门县| 顺义区| 逊克县| 西贡区| 饶河县| 渭源县| 桑植县|