以太坊dapp智慧型合約示例 通過對映使用者來玩彩票

2021-09-20 08:36:40 字數 1536 閱讀 5271

我們彩票案例的目的是多個玩家能夠通過傳送錢參與彩票。玩家傳送的錢越多,他贏得所有資金的機會就越大。當彩票的運營發行者決定關閉彩票後,就會選擇乙個優勝者,並將全部資金轉給這名優勝者。

usersbet[msg.sender] = 10;

// usersbet[msg.sender] == 10

uint nbusers = 0;

uint totalbets = 0;

address owner;

我們然後構建乙個bet函式。正常賬戶一樣,智慧型合約可以操控以太坊。我們bet函式需要有乙個支付彩金的功能。當函式被呼叫的時候他就將投入的彩金值傳送給以太坊智慧型合約,並將傳送以太幣的數量儲存在msg.value

所以當函式被呼叫時,我們先檢查傳送的以太幣值是否大於零即msg.value>0。然後我們將傳送值儲存在usersbet的對映中。如果這個玩家的彩金等於0,我們遞增我們的nbusers並儲存玩家的位址,這樣我們可以在關閉這一期彩票時遍歷所有玩家。。

function bet() public payable  

usersbet[msg.sender] += msg.value;

totalbets += msg.value;}}

function endlottery() public }}

}

乙個特別的說明,我們在這個示例中使用了乙個非常簡單的方法來獲取或取值,現實中特別是在處理錢的時候,你需要用乙個更好的方法來獲得真正的隨機數。

下面所有的智慧型合約**放在一起:

pragma solidity ^0.4

.11;

contract lottery

function bet() public payable

usersbet[msg.sender] += msg.value;

totalbets += msg.value;}}

function endlottery() public }}

}}

所以讓我們部署我們的合約並且來玩一把。我們將用我們的兩個賬戶來傳送彩金用以太坊幣。作為乙個功能你會看到我們可以呼叫函式payable進行支付。

傳送了以太幣後,你會發現智慧型合約現在成立了。

如果你從彩票運營者賬戶呼叫entlotytye()函式,彩票收益將轉移給優勝者,並且智慧型合約也將結束。

在本文中,我們使用payable修飾符,使它可以傳送以太幣到我們的智慧型合約。

原文**這個以太坊部落格

C 開發智慧型合約和以太坊dApp

最近區塊鏈技術引起了我的注意。我剛開始了解它,就看到了區塊鏈去中心化架構的巨大潛力,並且它能夠簡化各種現有繁瑣的流程,通過各種形式的合約。儘管網上提供了大量關於區塊鏈技術和區塊鏈開發的資源,但它們並沒有得到驗證,也不是很容易理解。所以我不得不深入挖掘很多資訊,包括書籍,論壇,文章。現在我能夠將典型的...

開發基於以太坊智慧型合約的DApp

梳理一下架構關係 web3.js與以太坊通訊是通過rpc的方式實現的。ganache cli模擬了乙個以太坊的測試節點並提供對外的rpc訪問方式 就是例子裡經常說的http localhost 7545或者http localhost 8545 同時在其中內建了m個以太坊帳號,用於測試。1 安裝no...

以太坊智慧型合約Hello World示例程式

文章 簡介 以太坊 ethereum 是一提供個智慧型合約 smart contract 功能的公共區塊鏈 blockchain 平台.本文介紹了乙個簡單的以太坊智慧型合約的開發過程.開發環境 在以太坊上開發應用,首先需要安裝其客戶端,本文使用基於go語言的geth,其官網為 第一步 在命令列環境中...