iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
自我挑戰組

區塊鏈 NFT系列 第 26

D26 -智能合約開發(中)

  • 分享至 

  • xImage
  •  

我們選擇使用Solidity語言,這是以太坊區塊鏈平台上最廣泛使用的合約語言之一。以下是一個簡單的智能合約範例,我們將創建一個簡單的投票合約。

->創建一個名為Voting.sol的Solidity合約文件,並添加以下內容:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract Voting {
address public owner;
mapping(string => uint256) public votes;

event Voted(string option, uint256 count);

modifier onlyOwner() {
    require(msg.sender == owner, "Only owner can call this function");
    _;
  }

constructor() {
    owner = msg.sender;
}

function vote(string memory option) public {
    require(bytes(option).length > 0, "Option cannot be empty");
    votes[option]++;
    emit Voted(option, votes[option]);
}

function getVoteCount(string memory option) public view returns (uint256) {
    return votes[option];
}

function transferOwnership(address newOwner) public onlyOwner {
    owner = newOwner;
}

}

用Solidity編譯器將合約編譯成字節碼。在終端機中執行:
solc --bin --abi --optimize -o ./compiled Voting.sol

(一直編輯....一直跑版)

參考資料:維基百科、區塊鏈創新實用手冊、圖解區塊鏈的工作原理與機制


上一篇
D25-實作-建立ssh金鑰
下一篇
D27-智能合約開發(下)
系列文
區塊鏈 NFT30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言