學習Solidity之Hello world

更新於 發佈於 閱讀時間約 3 分鐘
開發工具與環境設置
安裝所需要工具
npm install -g truffle ganache-cli
啟動 ganache-cli來啟動乙太坊測試環境
ganache-cli
建立智能合約
mkdir hello
cd hello
truffle init
truffle create contract HelloWorld #建立合約
HelloWorld.sol:
// SPDX-License-Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;

contract HelloWorld {
  // constructor() public {
  // }

  function sayHello() public pure returns (string memory){
    return ("Hello World");
  }
}
編譯
truffle compile
編譯成功的話,在build/contracts/目錄下會多出HelloWorld.json這個檔案
部署
在migrate中新增2\_deploy\_contracts.js
(migration檔案會依照檔案的編號來執行。例如2\_就會在1\_之後執行。檔案後面的文字只為協助開發者理解之用)
2\_deploy\_contracts.js:
var HelloWorld = artifacts.require("HelloWorld");
module.exports = function(deployer) {
  deployer.deploy(HelloWorld);
};
區塊網路設定
在truffle-config檔案裡L
加入設定
開始部署:
truffle migrate
測試
使用truffle提供的命令行工具,執行:
truffle console
輸入
> let contract
> HelloWorld.deployed().then(instance => contract = instance)
> contract.sayHello.call()
## 我的名子合約
> 輸入名子,並藉由呼叫函數來顯示
MyName.sol:
// SPDX-License-Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;

contract MyName {
string public _name;

constructor() {
_name="Please Type Your Name";
}

function setName(string memory name) public{
_name = name ;
}

function getName() public view returns (string memory){
return _name;
}
}
編譯並佈署後
我們開始測試
truffle console
let contract
MyName.deployed().then(instance => contract = instance)
call function:
contract.getName.call()
contract.setName("Test Name")
contract.getName.call()

歡迎大家來我的Blog看:
1.Blog: 文章連結
avatar-img
0會員
4內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Fufu的沙龍 的其他內容
在flutter內實現當鼠標懸停時圖片縮放
在flutter內實現當鼠標懸停時圖片縮放
你可能也想看
Google News 追蹤
Thumbnail
Dynamic Metadata NFTs 是區塊鏈技術中的一大創新,特別是在遊戲領域,能提供更大的靈活性
Thumbnail
前言 本篇要用 Token-2022 和 solana cli 來鑄造一個新的代幣叫做TYC。 如前篇所述,Token-2022 與 Spl Token 是不同的 Program,所以在呼叫的時候要特別註明以示明區別。 Token-2022 Program ID 地址: TokenzQdBNb
Thumbnail
上一篇提到要在Solana上鑄造新的token需要使用到token program,功能較為陽春。隨著各種新需求的增加同時兼顧安全性的目的,一個新的token program - token 2022 (另名token extension)被開發出來,發佈在一個新的地址上。 Token 2022在
Thumbnail
Initia 是由前 LUNA 员工创立的模块化 Rollup 集成 Layer 1 公链项目,旨在通过技术堆栈的垂直整合来消除多链系统的碎片化体验。该项目采用 Cosmos SDK 和 Celestia 数据可用性层(DA),并计划在 2024 年第一季度启动激励测试网。
Thumbnail
# 簡介 身為一位專注於 Vue.js 的前端開發者,這是我第一次嘗試構建 Flutter 網頁應用。讓我們開始吧! ## 第一次嘗試 ### 第一步:創建一個 Flutter 應用 首先,通過運行以下命令來創建一個新的 Flutter 項目: ```sh flutter
Overview 1. Request Wallet Connection from Metamask get account function get account function 2. Set your smart contract address injected provide
Thumbnail
以太坊上隱私協議@dop_org白皮書內測試網明牌空投- Tomi代幣持有者- Tomi Pioneers系列NFT持有者-測試網參與者流程:創建錢包領取測試代幣加密-發送-解密代幣Let's go 1⃣創建錢包 網址:https://doptest.dop.org?id=b5tWpB9 流程
Thumbnail
Dynamic Metadata NFTs 是區塊鏈技術中的一大創新,特別是在遊戲領域,能提供更大的靈活性
Thumbnail
前言 本篇要用 Token-2022 和 solana cli 來鑄造一個新的代幣叫做TYC。 如前篇所述,Token-2022 與 Spl Token 是不同的 Program,所以在呼叫的時候要特別註明以示明區別。 Token-2022 Program ID 地址: TokenzQdBNb
Thumbnail
上一篇提到要在Solana上鑄造新的token需要使用到token program,功能較為陽春。隨著各種新需求的增加同時兼顧安全性的目的,一個新的token program - token 2022 (另名token extension)被開發出來,發佈在一個新的地址上。 Token 2022在
Thumbnail
Initia 是由前 LUNA 员工创立的模块化 Rollup 集成 Layer 1 公链项目,旨在通过技术堆栈的垂直整合来消除多链系统的碎片化体验。该项目采用 Cosmos SDK 和 Celestia 数据可用性层(DA),并计划在 2024 年第一季度启动激励测试网。
Thumbnail
# 簡介 身為一位專注於 Vue.js 的前端開發者,這是我第一次嘗試構建 Flutter 網頁應用。讓我們開始吧! ## 第一次嘗試 ### 第一步:創建一個 Flutter 應用 首先,通過運行以下命令來創建一個新的 Flutter 項目: ```sh flutter
Overview 1. Request Wallet Connection from Metamask get account function get account function 2. Set your smart contract address injected provide
Thumbnail
以太坊上隱私協議@dop_org白皮書內測試網明牌空投- Tomi代幣持有者- Tomi Pioneers系列NFT持有者-測試網參與者流程:創建錢包領取測試代幣加密-發送-解密代幣Let's go 1⃣創建錢包 網址:https://doptest.dop.org?id=b5tWpB9 流程