iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
0

今天來複習 functions 的語法,學習怎麼定義一個 function 吧!
在 Solidity 的語法中,除了使用者自定義的 functions 以外,還存在一些特殊的 functions: constructor, receive, fallback,就讓我們來學習怎麼使用他們囉。

本日的練習題:小豬撲滿
功能要求:

  • 建立合約時可以設定儲蓄目標
  • 能查詢儲蓄目標
  • 能收取 ether
  • 提領時,儲蓄的總金額需大於儲蓄目標,並銷毀撲滿

解答:
https://gist.github.com/hydai/be2e42877efc29b6d9536ef28a87ee8a

// SPDX-License-Identifier: MIT
pragma solidity >=0.4.22 <0.8.0;

contract PiggyBank {
    uint public goal;
    
    constructor(uint _goal) {
        goal = _goal;
    }
    
    receive() external payable {}
    
    function getMyBalance() public view returns (uint) {
        return address(this).balance;
    }
    
    function withdraw() public {
        if (getMyBalance() > goal) {
            selfdestruct(msg.sender);
        }
    }
}

本日影片連結:
https://youtu.be/v6pSZaYD1IA

本系列播放清單:
https://www.youtube.com/playlist?list=PLHmOMPRfmOxQ3HSlId8KAKxnt8yuyTZVk


上一篇
Day 4 - Layout of a solidity code
下一篇
Day 6 - Value Types
系列文
在 2020 年該如何寫 Ethereum Smart Contract8
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言