首頁 >web前端 >js教程 >固體速效課程 - 零件智能合約

固體速效課程 - 零件智能合約

DDD
DDD原創
2025-01-29 22:33:14868瀏覽

Solidity Crash Course - Part  Smart Contracts

Solidity速成課程 - 第二部分:智能合約

簡介

Solidity 是一種高級編程語言,用於在以太坊區塊鏈上編寫智能合約。它受到 JavaScript、Python 和 C 的影響。在本速成課程的這一部分中,我們將介紹 Solidity 合約的基本語法以及如何編寫智能合約。


Solidity - 合約語法

Solidity 合約是代碼(函數)和數據(狀態)的集合,駐留在以太坊區塊鏈上的特定地址。每個 Solidity 合約都以版本聲明開頭,該聲明指定編譯器版本。

1. Solidity 合約的基本結構

<code class="language-solidity">// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract MyFirstContract {
    // 状态变量
    uint public myNumber;
    string public myString;

    // 构造函数 - 合约部署时仅运行一次
    constructor(uint _myNumber, string memory _myString) {
        myNumber = _myNumber;
        myString = _myString;
    }

    // 更新数字的函数
    function setNumber(uint _newNumber) public {
        myNumber = _newNumber;
    }

    // 更新字符串的函数
    function setString(string memory _newString) public {
        myString = _newString;
    }
}</code>

代碼分解

  1. SPDX-License-Identifier - 指定合約的許可證。
  2. Pragma 指令 - 確保合約使用 Solidity 0.8.0 或更高版本編譯。
  3. 合約聲明 - contract MyFirstContract {} 定義了合約。
  4. 狀態變量 - uintstring 變量存儲區塊鏈上的持久性數據。
  5. 構造函數 - 部署時初始化合約的狀態。
  6. 公共函數 - setNumbersetString 函數修改合約的狀態。

Solidity - 智能合約

智能合約是一種具有預定義規則的自執行合約。部署後,它與用戶和其他合約交互。

2. 編寫簡單的智能合約

以下是一個允許用戶存儲和檢索其喜歡的數字的智能合約示例。

<code class="language-solidity">// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract FavoriteNumber {
    uint private favoriteNumber;

    // 当数字更改时通知的事件
    event NumberUpdated(uint newNumber);

    // 设置喜欢的数字的函数
    function setFavoriteNumber(uint _number) public {
        favoriteNumber = _number;
        emit NumberUpdated(_number);
    }

    // 获取喜欢的数字的函数
    function getFavoriteNumber() public view returns (uint) {
        return favoriteNumber;
    }
}</code>

解釋

  1. 事件 - 用於在區塊鏈上記錄合約交互。
  2. 公共函數 setFavoriteNumber - 允許用戶存儲數字。
  3. 視圖函數 getFavoriteNumber - 檢索存儲的數字,無需修改區塊鏈。
  4. emit 語句 - 更新數字時記錄事件。

部署合約

要部署合約,您可以使用 Remix IDEHardhat

使用 Remix IDE 部署

  1. 前往 Remix IDE。
  2. 將 Solidity 合約複製並粘貼到新文件 (FavoriteNumber.sol) 中。
  3. 使用 Solidity 編譯器編譯合約。
  4. 使用 Injected Web3 環境(需要 MetaMask)部署它。
  5. 使用已部署的函數與合約交互。

如需部署幫助,請告知!


結論

在本部分中,我們介紹了基本的 Solidity 合約語法並創建了一個簡單的智能合約。

敬請期待第三部分!

以上是固體速效課程 - 零件智能合約的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn