亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 專題 > 區塊鏈 > 正文

一個簡單的加密貨幣的完整代碼和說明

2020-02-25 19:27:51
字體:
來源:轉載
供稿:網友

  一個簡單的智能合約

  先從一個非?;A的例子開始

  

123456789101112
contract ZhaoxiStorage {    uint storedData;    function set(uint x) {        storedData = x;    }    function get() constant returns (uint retVal) {        return storedData;    }}

 

  在Solidity中,一個合約由一組代碼(合約的函數)和數據(合約的狀態)組成。合約位于以太坊區塊鏈上的一個地址。

  uint storedData; 這行代碼聲明了一個狀態變量,變量名為storedData,類型為無符號整數uint??梢钥醋鰯祿炖锩娴囊粭l記錄,可以通過調用函數查詢和修改它。在以太坊中,通常只有合約的擁有者才能這樣做。在這個例子中,函數 set 和 get 分別用于修改和查詢變量的值。

  跟很多其他語言一樣,訪問狀態變量時,不需要在前面增加 this. 這樣的前綴。

  任何人都可以調用set方法設置一個不同的數字覆蓋你發布的數字。但是你的數字將會留存在區塊鏈的歷史上。稍后我們會學習如何增加存取限制。

  一個加密貨幣例子

  接下來的合約將實現一個形式最簡單的加密貨幣。通過這份代碼,任何人都可以發送貨幣給其他人,不需要注冊用戶名和密碼,只要有一對以太坊的公私鑰即可。

  

12345678910111213141516171819202122232425262728
contract ZhaoxiCoin {    // 關鍵字“public”使變量能從合約外部訪問。    address public minter;    mapping (address => uint) public balances;    // 事件讓輕客戶端能高效的對變化做出反應。    event Sent(address from, address to, uint amount);    // 這個構造函數的代碼僅僅只在合約創建的時候被運行。    function ZhaoxiCoin() {        minter = msg.sender;    }    // 合約創建者可以調用mint    function mint(address receiver, uint amount) {        if (msg.sender != minter) return;        balances[receiver] += amount;    }    // send可以被擁有代幣的任何人調用    function send(address receiver, uint amount) {        if (balances[msg.sender] < amount) return;        balances[msg.sender] -= amount;        balances[receiver] += amount;        Sent(msg.sender, receiver, amount);    }}

 

  address public minter 這行代碼聲明了一個可公開訪問的狀態變量,類型為address。address類型的值大小為160 bits,適用于存儲合約的地址或其他人的公私鑰。public關鍵字會自動為其修飾的狀態變量生成訪問函數。沒有public關鍵字的變量將無法被其他合約訪問。另外只有本合約內的代碼才能寫入。自動生成的函數如下:

  

1
function minter() returns (address) { return minter; }

 

  下一行代碼mapping (address => uint) public balances; 創建了一個public的狀態變量,但是其類型更加的復雜。該類型將一些address映射到無符號整數。mapping可以被認為是一個哈希表,每一個可能的key對應的value被虛擬的初始化為全0。對于一個mapping,無法獲取一個包含其所有key或者value的鏈表。所以我們得自己記著添加了哪些東西到mapping中。在這個例子中由public關鍵字生成的訪問函數將會更加復雜,其代碼大致如下:

  

123
function balances(address _account) returns (uint balance) {    return balances[_account];}

 

  event Sent(address from, address to, uint value)這行代碼聲明了一個“事件”。由send函數的最后一行代碼觸發??蛻舳丝梢员O聽這些由區塊鏈觸發的事件。事件觸發時,監聽者會同時接收到from,to,value這些參數值,可以方便的用于跟蹤交易。為了監聽這個事件,你可以使用如下代碼:

  

12345678910
ZhaoxiCoin.Sent().watch({}, '', function(error, result) {    if (!error) {        console.log("ZhaoxiCoin transfer: " + result.args.amount +            " coins were sent from " + result.args.from +            " to " + result.args.to + ".");        console.log("Balances now:/n" +            "Sender: " + ZhaoxiCoin.balances.call(result.args.from) +            "Receiver: " + ZhaoxiCoin.balances.call(result.args.to));    }}

 

  這里有個比較特殊的函數 ZhaoxiCoin。它是一個構造函數,會在合約創建的時候運行,之后就無法被調用。它會永久得存儲合約創建者的地址。msg(以及tx和block)是一個全局變量,它包含了一些可以被合約代碼訪問的屬于區塊鏈的屬性。msg.sender 總是存放著當前函數的外部調用者的地址。

  最后,真正被用戶或者其他合約調用,用來完成本合約功能的函數是mint和send。如果合約創建者之外的其他人調用mint,什么都不會發生。而send可以被任何人(擁有一定數量的代幣)調用,發送一些幣給其他人。

  以上就是一個簡單的加密貨幣的完整代碼和說明。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线观看成人| 亚洲一区亚洲二区亚洲三区| 97热在线精品视频在线观看| 亚洲乱亚洲乱妇无码| 久久成人av网站| 欧美日韩中文字幕在线视频| 欧美在线视频一区二区| 日韩av在线影视| 中国china体内裑精亚洲片| 热门国产精品亚洲第一区在线| 久久久久久久久91| 色偷偷噜噜噜亚洲男人的天堂| 午夜精品美女自拍福到在线| 欧美疯狂做受xxxx高潮| 奇米影视亚洲狠狠色| 日本一区二三区好的精华液| 色婷婷av一区二区三区在线观看| 日韩av综合中文字幕| 亚洲电影中文字幕| 久久久噜噜噜久久| 国产在线观看一区二区三区| 欧美亚洲在线视频| 国产精自产拍久久久久久蜜| 国产成人jvid在线播放| 久久久久久久激情视频| 久久久精品视频在线观看| 中文字幕一区日韩电影| 日本国产精品视频| 午夜精品在线视频| 欧美电影免费在线观看| 成人免费看黄网站| 一区二区成人av| 国产aⅴ夜夜欢一区二区三区| 色综合伊人色综合网站| 亚洲码在线观看| 亚洲成人在线视频播放| 成人国产精品久久久久久亚洲| 国产精品偷伦一区二区| 国模吧一区二区三区| 亚洲xxxx在线| www.美女亚洲精品| 成人免费网站在线观看| 人人爽久久涩噜噜噜网站| 亚洲午夜国产成人av电影男同| 国产精品私拍pans大尺度在线| 国产精品一区二区电影| 日韩欧美亚洲成人| 亚洲丁香久久久| 日韩精品高清在线观看| 一区二区欧美激情| 91精品视频在线免费观看| 在线国产精品播放| 国产噜噜噜噜噜久久久久久久久| 国产精品18久久久久久麻辣| 成人国产亚洲精品a区天堂华泰| 91国产高清在线| 免费97视频在线精品国自产拍| 91中文字幕在线| 亚洲一级黄色av| 精品日韩美女的视频高清| 性欧美激情精品| 国产精品入口日韩视频大尺度| 中文字幕日本精品| 欧美黄色性视频| 日韩在线免费高清视频| 91午夜理伦私人影院| 国产精品久久久久福利| 好吊成人免视频| 91精品久久久久久久久| 欧美一区二区三区免费观看| 亚洲国产精品资源| 欧美视频在线观看 亚洲欧| 国产女精品视频网站免费| 欧美精品18videos性欧美| 精品国产一区二区三区久久狼5月| 欧美精品少妇videofree| 欧美亚洲一区在线| 日韩国产高清视频在线| 国产盗摄xxxx视频xxx69| 国产美女精品视频免费观看| 7777免费精品视频| 国模极品一区二区三区| 亚洲欧美国产精品专区久久| 亚洲裸体xxxx| 欧美裸体xxxx| 欧美福利视频在线观看| 精品国产91久久久| 国产精品日日做人人爱| 亚洲国产精品热久久| 欧美极度另类性三渗透| 97久久精品国产| 日韩av影片在线观看| 在线观看欧美成人| 成人激情在线播放| 91高清在线免费观看| 国产有码一区二区| 日本一区二三区好的精华液| 高清一区二区三区四区五区| 日韩av综合中文字幕| 欧美丝袜一区二区| 日韩成人网免费视频| 国产女人18毛片水18精品| 国产精品视频999| 日韩av资源在线播放| 一本一本久久a久久精品牛牛影视| 欧美激情一级精品国产| 亚洲成人教育av| 久久天天躁狠狠躁老女人| 久久艹在线视频| 欧美性生交xxxxx久久久| 国产日韩欧美夫妻视频在线观看| www.欧美免费| 伊人久久大香线蕉av一区二区| 欧美色视频日本高清在线观看| 97超碰蝌蚪网人人做人人爽| 欧美视频第一页| 亚洲人成自拍网站| 国产精品啪视频| 国产专区欧美专区| 欧美性资源免费| 久久天天躁狠狠躁夜夜爽蜜月| 理论片在线不卡免费观看| 欧美在线性视频| 国产精品7m视频| 91精品久久久久久久久青青| 91在线精品视频| 高清欧美一区二区三区| 亚洲r级在线观看| 欧美精品激情视频| 国产一区二区三区18| 韩国日本不卡在线| 97视频免费在线观看| 97精品在线视频| 国产精品午夜一区二区欲梦| 欧美在线视频免费播放| 国产成人精品在线视频| 欧美极品少妇全裸体| 国产成人精品999| 亚洲成成品网站| 亚洲精品一区在线观看香蕉| 国产精品网站视频| 最好看的2019的中文字幕视频| 国产丝袜精品视频| 91精品国产综合久久久久久蜜臀| 亚洲成人三级在线| 亚洲国产精品va| 成人亚洲激情网| 亚洲第一二三四五区| 性欧美视频videos6一9| 国产欧美日韩最新| 久久久久久69| 国产精品高清免费在线观看| 亚洲一区二区三区视频播放| 91精品久久久久久久久久入口| 久久久999精品视频| 欧美丝袜一区二区| 国产热re99久久6国产精品| 欧美中文字幕在线观看| 97国产精品人人爽人人做| 精品国内产的精品视频在线观看| 国产一区在线播放| 久久好看免费视频| 欧美性xxxx极品hd欧美风情| 欧美日韩国产精品专区|