【開發智能合約 — Solidity系列】實作篇Ep.4 -貨幣與時間單位

更新於 發佈於 閱讀時間約 3 分鐘
「人」與「人」之間無非時時刻刻都在交易,只是每一種交易的形式與媒介有所不同,而區塊鏈的世界也有特定的交易單位,主要分為兩大類型的單位, 分別是以乙太幣單位以及時間單位。

💰 乙太幣單位

最小單位為「wei」, 而其餘主要會用到的單位分別是「gwei」與「ether」。
// 1 wei是貨幣中的最小單位
uint oneWei = 1 wei;

require(oneWei == 1, "1 wei is not equal to 1");

// 1 gwei is equal to 10^9 wei
uint oneGWei = 1 gwei;
require(oneGWei == 1e9, "1 gwei is not equal to 1e9");
require(oneGWei == pow(10, 9));

// 1 ether is equal to 10^18 wei
uint oneEther = 1 ether;
require(oneEther == 1e18, "1 ether is not equal to 1e18");
require(oneEther == pow(10, 18));
require(oneEther == 1000000000 * oneGWei, "1 ether is not equal to 1000000000 gwei");

🕑 時間單位

時間單位的部份就比較容易理解了, 非常直觀, 以「秒」為基礎單位進行延伸。
P.S: Solidity的時間表示方式是Unix Time
// 1秒
assert(1 seconds == 1);

// 1分鐘 = 60秒
assert(1 minutes == 60 seconds);

// 1小時 = 60分鐘
assert(1 hours == 60 minutes);

// 1天=24小時
assert(1 days == 24 hours);

// 1周 = 7天
assert(1 weeks == 7 days);
由於block(區塊)中通常帶有時間戳記, 而單位也是秒, 因此我們可以進行一些區塊的驗證如下:
function validate(uint start, uint secondsAfter) public {
// 區塊的時間戳記至少在3秒以前, 才算有效
if (block.timestamp >= start + secondsAfter * 3 seconds) {
// ...
}
}

結語

「單位」在區塊鏈的世界中真的非常重要,尤其與金流及驗證有關的演算都是需要進行單位轉換的演算,因此我們務必打好基礎,理解各個單位的用法、等價方式…,才能夠撰寫出一份完整的合約內容。
今天的範例都在這裡「📦 solidity-remix-toturial/Ep4」歡迎自行取用。
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
avatar-img
119會員
268內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
阿Han的沙龍 的其他內容
資料型態在合約當中扮演著什麼角色呢? 我們在「【開發智能合約 — Solidity系列】實作篇Ep.2 — 合約中的基本組成元素」有介紹過狀態變數可以儲存一些變化值,而儲存什麼類型的值就是所謂的資料型態,不同的資料型態可以處理的事物也有所不同,因此我們也需要了解一些基本的資料型態以及特性之後,未來開
我們在「【開發智能合約 — Solidity系列】開發環境準備」這一個篇章有教學如何結合Remix與Github來儲存我們的程式碼,使用Remix Editor一段時間後,也順利提交Souce Code到Github,但過程中發現一個小問題,就是在Github上的歷程中發現每一次的提交作者都是「Re
上一篇我們談到「【開發智能合約 — Solidity系列】實作篇Ep.1 — 看懂智能合約的脈絡」,大致上理解每個檔案的每份合約都是一個個的區塊,而這一個篇章主要著重於合約中的每個區塊的組成元素進行分項說明。 今天的範例會以簡單的銀行存款與提款流程進行示範,過程中將一步步的使用上述7種元素完成功能,
本篇章會以實際的程式碼來說明開發Solidity的組成脈絡與重要的區塊,讓我們不再害怕閱讀艱澀難懂的程式碼,並且具備基礎知識以後也能看懂外面的合約。 開源程式碼常常會面臨到法律的問題,因此License的宣告就變得非常重要,而Solidity也考慮到這一塊,因此特別規劃了一塊License宣告的區塊
資料型態在合約當中扮演著什麼角色呢? 我們在「【開發智能合約 — Solidity系列】實作篇Ep.2 — 合約中的基本組成元素」有介紹過狀態變數可以儲存一些變化值,而儲存什麼類型的值就是所謂的資料型態,不同的資料型態可以處理的事物也有所不同,因此我們也需要了解一些基本的資料型態以及特性之後,未來開
我們在「【開發智能合約 — Solidity系列】開發環境準備」這一個篇章有教學如何結合Remix與Github來儲存我們的程式碼,使用Remix Editor一段時間後,也順利提交Souce Code到Github,但過程中發現一個小問題,就是在Github上的歷程中發現每一次的提交作者都是「Re
上一篇我們談到「【開發智能合約 — Solidity系列】實作篇Ep.1 — 看懂智能合約的脈絡」,大致上理解每個檔案的每份合約都是一個個的區塊,而這一個篇章主要著重於合約中的每個區塊的組成元素進行分項說明。 今天的範例會以簡單的銀行存款與提款流程進行示範,過程中將一步步的使用上述7種元素完成功能,
本篇章會以實際的程式碼來說明開發Solidity的組成脈絡與重要的區塊,讓我們不再害怕閱讀艱澀難懂的程式碼,並且具備基礎知識以後也能看懂外面的合約。 開源程式碼常常會面臨到法律的問題,因此License的宣告就變得非常重要,而Solidity也考慮到這一塊,因此特別規劃了一塊License宣告的區塊
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
USDT(Tether)是一种加密货币,具有五大功能,包括价值储备和稳定性、价格稳定、支付结算、避险投资和流动性提供。它以1:1比例与美元挂钩,提供加密货币和传统金融体系的对接,解决价格波动性问题。 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享 20% 手续费返佣
Thumbnail
合约交易是一种金融交易形式,它允许交易者进行买卖期货合约,这些合约代表了一种在未来特定日期内买卖资产的协议,通俗来说就是投资者只需要判断未来币种价格,不需要持有加密货币即可盈利,因此懂得币圈合约交易怎么玩?下面小编为大家详细说说新手如何玩合约交易 🚀 币安 - 全球最大加密货币交易所 💥 独
Thumbnail
USDT是一种稳定币,可以快速变现为人民币。选择合适的交易平台,操作规范、安全可靠,商家信誉度高,通常可以在当天到账,几分钟内完成交易。 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享 20% 手续费返佣 🔑 专属邀请码: R851UX3N USDT是一种基于
Thumbnail
交易對(Trading Pair)是指在加密貨幣交易所上,兩種不同的資產之間的交易對應關係。每個交易對通常包括一種基準資產(如比特幣BTC或以太坊ETH)和另一種交易資產(如美元USD或另一種加密貨幣)。交易對表示用戶可以用一種資產來交換另一種資產。
Thumbnail
加密貨幣是基於區塊鏈技術的數字貨幣,文章介紹了加密貨幣的基本概念、特點、主要加密貨幣、優勢和挑戰、以及在實際應用中的情況。
Thumbnail
之前討論過基於Ordinals協議的BRC-20,意旨將比特幣最小單位的SATS聰(以中本聰Satoshis命名)進行編號排序,使得可以在比特鏈上發行同質化代幣FT。
Thumbnail
很多新手進入加密貨幣市場會首先選擇幣幣交易,這時候你會發現很多交易所貨幣對是以泰達幣(USDT)計價的,如BTCUSDT, ETHUSDT。 也就是你需要先用TWD買USDT,然後用USDT交易BTC比特幣等幣種。   ●什麼是Tether (USDT) 虛擬貨幣 在2014
Thumbnail
區塊鏈原理 什麼是區塊鏈? 區塊鏈(Blockchain)是一種分散式帳本技術,它基於加密學和分散式計算的原理,通過將數據以區塊的形式連接在一起,形成鏈條。每個區塊包含一定時間內的多筆交易記錄,並使用密碼學哈希函數與前一個區塊相連,這種連接保證了數據的不可篡改性。 2. 區塊鏈的基本結構 2
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
USDT(Tether)是一种加密货币,具有五大功能,包括价值储备和稳定性、价格稳定、支付结算、避险投资和流动性提供。它以1:1比例与美元挂钩,提供加密货币和传统金融体系的对接,解决价格波动性问题。 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享 20% 手续费返佣
Thumbnail
合约交易是一种金融交易形式,它允许交易者进行买卖期货合约,这些合约代表了一种在未来特定日期内买卖资产的协议,通俗来说就是投资者只需要判断未来币种价格,不需要持有加密货币即可盈利,因此懂得币圈合约交易怎么玩?下面小编为大家详细说说新手如何玩合约交易 🚀 币安 - 全球最大加密货币交易所 💥 独
Thumbnail
USDT是一种稳定币,可以快速变现为人民币。选择合适的交易平台,操作规范、安全可靠,商家信誉度高,通常可以在当天到账,几分钟内完成交易。 🚀 币安 - 全球最大加密货币交易所 💥 独家优惠 💥 💰 注册即享 20% 手续费返佣 🔑 专属邀请码: R851UX3N USDT是一种基于
Thumbnail
交易對(Trading Pair)是指在加密貨幣交易所上,兩種不同的資產之間的交易對應關係。每個交易對通常包括一種基準資產(如比特幣BTC或以太坊ETH)和另一種交易資產(如美元USD或另一種加密貨幣)。交易對表示用戶可以用一種資產來交換另一種資產。
Thumbnail
加密貨幣是基於區塊鏈技術的數字貨幣,文章介紹了加密貨幣的基本概念、特點、主要加密貨幣、優勢和挑戰、以及在實際應用中的情況。
Thumbnail
之前討論過基於Ordinals協議的BRC-20,意旨將比特幣最小單位的SATS聰(以中本聰Satoshis命名)進行編號排序,使得可以在比特鏈上發行同質化代幣FT。
Thumbnail
很多新手進入加密貨幣市場會首先選擇幣幣交易,這時候你會發現很多交易所貨幣對是以泰達幣(USDT)計價的,如BTCUSDT, ETHUSDT。 也就是你需要先用TWD買USDT,然後用USDT交易BTC比特幣等幣種。   ●什麼是Tether (USDT) 虛擬貨幣 在2014
Thumbnail
區塊鏈原理 什麼是區塊鏈? 區塊鏈(Blockchain)是一種分散式帳本技術,它基於加密學和分散式計算的原理,通過將數據以區塊的形式連接在一起,形成鏈條。每個區塊包含一定時間內的多筆交易記錄,並使用密碼學哈希函數與前一個區塊相連,這種連接保證了數據的不可篡改性。 2. 區塊鏈的基本結構 2