iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 11
1

在一些應用中,我們需要一種結構來幫我們儲存 Key 對應 Value。比如說政府用 身分證字號(Key) 來對應 個人(Value)。那就讓我們來看看怎麼在 contract 裡面使用這種資料結構吧!

本日合約:

pragma solidity ^0.4.25;

contract Donation {
    mapping(address => uint) public ledger;
    mapping(address => bool) public donors;
    address[] public donorList;
    
    function isDonor(address pAddr) internal view returns (bool) {
        return donors[pAddr];
    }
    
    function donate() public payable {
        if (msg.value >= 1 ether) {
            if (!isDonor(msg.sender)) {
                donors[msg.sender] = true;
                donorList.push(msg.sender);
            }
            
            ledger[msg.sender] += msg.value;
        } else {
            revert("< 1 ether");
        }
    }
}

本日影片:
https://youtu.be/2umVhPUumU8

Smart Contract 實戰教學播放清單:
https://www.youtube.com/playlist?list=PLHmOMPRfmOxSJcrlwyandWYiuP9ZAMYoF


上一篇
Address Type
下一篇
Struct
系列文
Smart Contract 實戰教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言