Solidity:創建簡易代幣

更新 發佈閱讀 5 分鐘

在終端輸入

truffle create contract MyToken

創建

vocus|新世代的創作平台









// SPDX-License-Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;

contract MyToken {
  uint INITIAL_SUPPLY = 10000;
  mapping(address => uint) balances;
  constructor() {
    balances[msg.sender] = INITIAL_SUPPLY;
  }

  // transfer token for a specified address
  function transfer(address _to, uint _amount) public {
    require(balances[msg.sender] > _amount);
    balances[msg.sender] -= _amount;
    balances[_to] += _amount;
  }
  // Get the balance of the specified address
  // Constant and Immutable State Variables. See https://docs.soliditylang.org/en/v0.8.10/contracts.html#modifiers
  function balanceOf(address _owner) public view returns (uint) {
    return balances[_owner];
  }
}

在migrations資料夾新增

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

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

編譯

truffle compile
vocus|新世代的創作平台








開始部署,Run

truffle migrate
vocus|新世代的創作平台


vocus|新世代的創作平台

Test

開啟console

truffle console


let contract
MyToken.deployed().then(instance => contract = instance)
vocus|新世代的創作平台


contract.balanceOf(accounts[0])
contract.balanceOf(accounts[1])
vocus|新世代的創作平台


contract.transfer(accounts[1], 123)
contract.balanceOf(accounts[0])
contract.balanceOf.call(accounts[1])
vocus|新世代的創作平台

---

使用Remix測試:

(可以參考前面: {% post_link Remix-On-Vscode '在VSCode上使用Remix' %})

1.啟動ganache-cli

vocus|新世代的創作平台

2.使用remix連接local測試網

vocus|新世代的創作平台

3.編譯並部屬

vocus|新世代的創作平台

4.測試

先呼叫部屬者,並從output中觀察結果

vocus|新世代的創作平台

接著轉5000,測試轉帳功能

vocus|新世代的創作平台
vocus|新世代的創作平台

再看一次部屬者的Balance

vocus|新世代的創作平台
vocus|新世代的創作平台

最後看轉Token過去的account

vocus|新世代的創作平台
完成,簡單的token生成與轉移token已經實現,但一般的Token我們會使用**ERC20**,而不會像這樣實現陽春的功能,會使用更嚴謹的方式來防止漏洞。



歡迎大家來我的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/24
開發工具與環境設置 安裝所需要工具 啟動 ganache-cli來啟動乙太坊測試環境 建立智能合約 HelloWorld.sol: 編譯 編譯成功的話,在build/contracts/目錄下會多出HelloWorld.json這個檔案 部署 2\_deploy\_contracts.js: 測試
Thumbnail
2022/04/24
開發工具與環境設置 安裝所需要工具 啟動 ganache-cli來啟動乙太坊測試環境 建立智能合約 HelloWorld.sol: 編譯 編譯成功的話,在build/contracts/目錄下會多出HelloWorld.json這個檔案 部署 2\_deploy\_contracts.js: 測試
Thumbnail
2022/04/24
在flutter內實現當鼠標懸停時圖片縮放
Thumbnail
2022/04/24
在flutter內實現當鼠標懸停時圖片縮放
Thumbnail
看更多
你可能也想看
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
資料型態在合約當中扮演著什麼角色呢? 我們在「【開發智能合約 — Solidity系列】實作篇Ep.2 — 合約中的基本組成元素」有介紹過狀態變數可以儲存一些變化值,而儲存什麼類型的值就是所謂的資料型態,不同的資料型態可以處理的事物也有所不同,因此我們也需要了解一些基本的資料型態以及特性之後,未來開
Thumbnail
資料型態在合約當中扮演著什麼角色呢? 我們在「【開發智能合約 — Solidity系列】實作篇Ep.2 — 合約中的基本組成元素」有介紹過狀態變數可以儲存一些變化值,而儲存什麼類型的值就是所謂的資料型態,不同的資料型態可以處理的事物也有所不同,因此我們也需要了解一些基本的資料型態以及特性之後,未來開
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: 測試
Thumbnail
上一篇我們介紹了智能合約的基本概念,而在開發智能合約之前, 建議先對智能合約具備基礎的概念, 往後進行開發時較容易融會貫通, 還沒閱讀的朋友可以參閱此篇「【開發智能合約 — Solidity系列】 淺談智能合約」。 理解完「智能合約」之後,相信大家已經開始手癢了吧! 應該很想開始動手完成第一個自己專
Thumbnail
上一篇我們介紹了智能合約的基本概念,而在開發智能合約之前, 建議先對智能合約具備基礎的概念, 往後進行開發時較容易融會貫通, 還沒閱讀的朋友可以參閱此篇「【開發智能合約 — Solidity系列】 淺談智能合約」。 理解完「智能合約」之後,相信大家已經開始手癢了吧! 應該很想開始動手完成第一個自己專
Thumbnail
介紹了這麼多Solidity的函數和方法,今天來寫一個簡單的錢包,順便介紹一下payable。
Thumbnail
介紹了這麼多Solidity的函數和方法,今天來寫一個簡單的錢包,順便介紹一下payable。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
本篇章會以實際的程式碼來說明開發Solidity的組成脈絡與重要的區塊,讓我們不再害怕閱讀艱澀難懂的程式碼,並且具備基礎知識以後也能看懂外面的合約。 開源程式碼常常會面臨到法律的問題,因此License的宣告就變得非常重要,而Solidity也考慮到這一塊,因此特別規劃了一塊License宣告的區塊
Thumbnail
本篇章會以實際的程式碼來說明開發Solidity的組成脈絡與重要的區塊,讓我們不再害怕閱讀艱澀難懂的程式碼,並且具備基礎知識以後也能看懂外面的合約。 開源程式碼常常會面臨到法律的問題,因此License的宣告就變得非常重要,而Solidity也考慮到這一塊,因此特別規劃了一塊License宣告的區塊
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
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的操作
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News