學習Solidity之Hello world

更新 發佈閱讀 4 分鐘

開發工具與環境設置

安裝所需要工具

npm install -g truffle ganache-cli

啟動 ganache-cli來啟動乙太坊測試環境

ganache-cli
raw-image


raw-image


建立智能合約

mkdir hello
cd hello
truffle init
truffle create contract HelloWorld #建立合約
raw-image


raw-image


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這個檔案

raw-image







部署

在migrate中新增2\_deploy\_contracts.js

(migration檔案會依照檔案的編號來執行。例如2\_就會在1\_之後執行。檔案後面的文字只為協助開發者理解之用)

raw-image


2\_deploy\_contracts.js:

var HelloWorld = artifacts.require("HelloWorld");

module.exports = function(deployer) {
  deployer.deploy(HelloWorld);
};

區塊網路設定

在truffle-config檔案裡L

raw-image


加入設定

raw-image


開始部署:

truffle migrate
raw-image


測試

使用truffle提供的命令行工具,執行:

truffle console

輸入

> let contract
> HelloWorld.deployed().then(instance => contract = instance)
> contract.sayHello.call()
raw-image


raw-image


## 我的名子合約

> 輸入名子,並藉由呼叫函數來顯示

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)


raw-image


call function:

contract.getName.call()
contract.setName("Test Name")
raw-image


contract.getName.call()
raw-image



歡迎大家來我的Blog看:

1.Blog: 文章連結




留言
avatar-img
Fufu的沙龍
0會員
4內容數
Fufu的沙龍的其他內容
2022/04/26
學習並操作solidity裡的投票,並做一些小修改,顯示出來的被投票者不再是byte,而是string。
Thumbnail
2022/04/26
學習並操作solidity裡的投票,並做一些小修改,顯示出來的被投票者不再是byte,而是string。
Thumbnail
2022/04/25
此篇文是在練習並熟悉solidity與remix的操作
Thumbnail
2022/04/25
此篇文是在練習並熟悉solidity與remix的操作
Thumbnail
2022/04/24
在flutter內實現當鼠標懸停時圖片縮放
Thumbnail
2022/04/24
在flutter內實現當鼠標懸停時圖片縮放
Thumbnail
看更多
你可能也想看
Thumbnail
賽勒布倫尼科夫以流亡處境回望蘇聯電影導演帕拉贊諾夫的舞台作品,以十段寓言式殘篇,重新拼貼記憶、暴力與美學,並將審查、政治犯、戰爭陰影與「形式即政治」的劇場傳統推到台前。本文聚焦於《傳奇:帕拉贊諾夫的十段殘篇》的舞台美術、音樂與多重扮演策略,嘗試解析極權底下不可言說之事,將如何成為可被觀看的公共發聲。
Thumbnail
賽勒布倫尼科夫以流亡處境回望蘇聯電影導演帕拉贊諾夫的舞台作品,以十段寓言式殘篇,重新拼貼記憶、暴力與美學,並將審查、政治犯、戰爭陰影與「形式即政治」的劇場傳統推到台前。本文聚焦於《傳奇:帕拉贊諾夫的十段殘篇》的舞台美術、音樂與多重扮演策略,嘗試解析極權底下不可言說之事,將如何成為可被觀看的公共發聲。
Thumbnail
柏林劇團在 2026 北藝嚴選,再次帶來由布萊希特改編的經典劇目《三便士歌劇》(The Threepenny Opera),導演巴里・柯斯基以舞台結構與舞台調度,重新向「疏離」進行提問。本文將從觀眾慾望作為戲劇內核,藉由沉浸與疏離的辯證,解析此作如何再次照見觀眾自身的位置。
Thumbnail
柏林劇團在 2026 北藝嚴選,再次帶來由布萊希特改編的經典劇目《三便士歌劇》(The Threepenny Opera),導演巴里・柯斯基以舞台結構與舞台調度,重新向「疏離」進行提問。本文將從觀眾慾望作為戲劇內核,藉由沉浸與疏離的辯證,解析此作如何再次照見觀眾自身的位置。
Thumbnail
本文深入解析臺灣劇團「晃晃跨幅町」對易卜生經典劇作《海妲.蓋柏樂》的詮釋,從劇本歷史、聲響與舞臺設計,到演員的主體創作方法,探討此版本如何讓經典劇作在當代劇場語境下煥發新生,滿足現代觀眾的觀看慾望。
Thumbnail
本文深入解析臺灣劇團「晃晃跨幅町」對易卜生經典劇作《海妲.蓋柏樂》的詮釋,從劇本歷史、聲響與舞臺設計,到演員的主體創作方法,探討此版本如何讓經典劇作在當代劇場語境下煥發新生,滿足現代觀眾的觀看慾望。
Thumbnail
《轉轉生》為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,融合舞蹈、音樂、時尚和視覺藝術,透過身體、服裝與群舞結構,回應殖民歷史、城市經驗與祖靈記憶的交錯。本文將從服裝設計、身體語彙與「輪迴」的「誕生—死亡—重生」結構出發,分析《轉轉生》如何以當代目光,形塑去殖民視角的奈及利亞歷史。
Thumbnail
《轉轉生》為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,融合舞蹈、音樂、時尚和視覺藝術,透過身體、服裝與群舞結構,回應殖民歷史、城市經驗與祖靈記憶的交錯。本文將從服裝設計、身體語彙與「輪迴」的「誕生—死亡—重生」結構出發,分析《轉轉生》如何以當代目光,形塑去殖民視角的奈及利亞歷史。
Thumbnail
本篇章會以實際的程式碼來說明開發Solidity的組成脈絡與重要的區塊,讓我們不再害怕閱讀艱澀難懂的程式碼,並且具備基礎知識以後也能看懂外面的合約。 開源程式碼常常會面臨到法律的問題,因此License的宣告就變得非常重要,而Solidity也考慮到這一塊,因此特別規劃了一塊License宣告的區塊
Thumbnail
本篇章會以實際的程式碼來說明開發Solidity的組成脈絡與重要的區塊,讓我們不再害怕閱讀艱澀難懂的程式碼,並且具備基礎知識以後也能看懂外面的合約。 開源程式碼常常會面臨到法律的問題,因此License的宣告就變得非常重要,而Solidity也考慮到這一塊,因此特別規劃了一塊License宣告的區塊
Thumbnail
延續上一篇「【開發智能合約 — Solidity系列】開發環境準備」,我們建立好開發環境之後,為了提升開發效率與減少錯誤,因此會建議在基礎的編輯器之上加掛一些非常好用的外掛,俗話說工欲善其事,必先利其器,我們要動刀之前務必先磨好刀,接下來會建議一些必備的外掛套件以及示範如何使用,讓我們的開發功力更上
Thumbnail
延續上一篇「【開發智能合約 — Solidity系列】開發環境準備」,我們建立好開發環境之後,為了提升開發效率與減少錯誤,因此會建議在基礎的編輯器之上加掛一些非常好用的外掛,俗話說工欲善其事,必先利其器,我們要動刀之前務必先磨好刀,接下來會建議一些必備的外掛套件以及示範如何使用,讓我們的開發功力更上
Thumbnail
上一篇我們介紹了智能合約的基本概念,而在開發智能合約之前, 建議先對智能合約具備基礎的概念, 往後進行開發時較容易融會貫通, 還沒閱讀的朋友可以參閱此篇「【開發智能合約 — Solidity系列】 淺談智能合約」。 理解完「智能合約」之後,相信大家已經開始手癢了吧! 應該很想開始動手完成第一個自己專
Thumbnail
上一篇我們介紹了智能合約的基本概念,而在開發智能合約之前, 建議先對智能合約具備基礎的概念, 往後進行開發時較容易融會貫通, 還沒閱讀的朋友可以參閱此篇「【開發智能合約 — Solidity系列】 淺談智能合約」。 理解完「智能合約」之後,相信大家已經開始手癢了吧! 應該很想開始動手完成第一個自己專
Thumbnail
關於乙太坊上的交易,通常我們都會到etherscan.io這個網站來進行確認。但初入區塊鏈的朋友們往往看到裡面一大堆的資訊,除了from和to外可能都是一頭霧水。想多了解些相關知識又不知如何下手才好,因此動念寫下一些本人初學區塊鏈時可能用來切入的一些工具,來和各位同好分享。
Thumbnail
關於乙太坊上的交易,通常我們都會到etherscan.io這個網站來進行確認。但初入區塊鏈的朋友們往往看到裡面一大堆的資訊,除了from和to外可能都是一頭霧水。想多了解些相關知識又不知如何下手才好,因此動念寫下一些本人初學區塊鏈時可能用來切入的一些工具,來和各位同好分享。
Thumbnail
Step1:config2~3行的部分 打開public->config資料夾內的config.json 在前面的時候大家應該都有mint自己的nft並且可以在Opensea看到 所以我們現在要去Opensea找到我們NFT的合約跟token位置 https://testnets.opensea.i
Thumbnail
Step1:config2~3行的部分 打開public->config資料夾內的config.json 在前面的時候大家應該都有mint自己的nft並且可以在Opensea看到 所以我們現在要去Opensea找到我們NFT的合約跟token位置 https://testnets.opensea.i
Thumbnail
Step1 : 過Compile Compile就類似debug,要確認這個合約是可以執行的才可以選擇deploy Step2 :選擇部屬環境跟合約位置 ENVIROMMENT 選 Injected Web3 CONTRACT 選你剛在本地寫的 .sol 專案(我的是 ASC_ver1.sol -
Thumbnail
Step1 : 過Compile Compile就類似debug,要確認這個合約是可以執行的才可以選擇deploy Step2 :選擇部屬環境跟合約位置 ENVIROMMENT 選 Injected Web3 CONTRACT 選你剛在本地寫的 .sol 專案(我的是 ASC_ver1.sol -
Thumbnail
此篇文是在練習並熟悉solidity與remix的操作
Thumbnail
此篇文是在練習並熟悉solidity與remix的操作
Thumbnail
開發工具與環境設置 安裝所需要工具 啟動 ganache-cli來啟動乙太坊測試環境 建立智能合約 HelloWorld.sol: 編譯 編譯成功的話,在build/contracts/目錄下會多出HelloWorld.json這個檔案 部署 2\_deploy\_contracts.js: 測試
Thumbnail
開發工具與環境設置 安裝所需要工具 啟動 ganache-cli來啟動乙太坊測試環境 建立智能合約 HelloWorld.sol: 編譯 編譯成功的話,在build/contracts/目錄下會多出HelloWorld.json這個檔案 部署 2\_deploy\_contracts.js: 測試
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News