- 以太坊教程
- 以太坊 - 主頁
- 以太坊 - 介紹
- 以太坊 - 智慧合約
- 以太坊 - 基於 Solidity 的合約編寫
- 以太坊 - 正在開發 MyContract
- 以太坊 - 編譯合約
- 以太坊 - 部署合約
- 以太坊 - 與合約互動
- 以太坊 - Remix 的限制
- 以太坊 - Ganache for Blockchain
- 以太坊 - Ganache 伺服器設定
- 以太坊 - 快速演練
- 以太坊 - MyEtherWallet
- 以太坊 - 建立錢包
- 將錢包附加至 Ganache Blockchain
- 以太坊 - 部署合約
- 與已部署的合約互動
- 以太坊 - 建立合約使用者
- 以太坊 - 摘要
- 以太坊實用資源
- 以太坊 - 快速指南
- 以太坊 - 實用資源
- 以太坊 - 討論
以太坊 - 正在開發 MyContract
我們對合約命名為 MyContract,如下所示 −
contract MyContract {
我們宣告兩個變數,如下所示 −
uint amount; uint value;
變數 amount 將持有合約執行人員傳送給合約建立者的累積資金。value 欄位將持有合約價值。隨著執行人員執行合約,value 欄位將被修改以反映平衡的合約價值。
在合約建構函式中,我們設定這兩個變數的值。
constructor (uint initialAmount, uint initialValue) public {
amount = 0;
value = 1000;
}
最初,合約中收集的金額為零,因此我們將 amount 欄位設定為 0。我們將合約 value 設定為任意數字,在此案例中為 1000。合約建立者決定此值。
為了在任意給定時間點檢查已收集的金額,我們提供了一個名為 getAmount 的公共合約方法,定義如下 −
function getAmount() public view returns(uint) {
return amount;
}
為了在任意給定時間點獲取平衡的合約價值,我們定義了 getBalance 方法,如下所示 −
function getBalance() public view returns(uint) {
return value;
}
最後,我們編寫了一個合約方法 (Send)。它讓客戶能夠將一些資金髮送給合約建立者 −
function send(uint newDeposit) public {
value = value - newDeposit;
amount = amount + newDeposit;
}
執行 send 方法將修改合約的 value 和 amount 欄位。
完整的合約程式碼如下所列 −
contract MyContract {
uint amount;
uint value;
constructor (uint initialAmount, uint initialValue) public {
amount = 0;
value = 1000;
}
function getBalance() public view returns(uint) {
return value;
}
function getAmount() public view returns(uint) {
return amount;
}
function send(uint newDeposit) public {
value = value - newDeposit;
amount = amount + newDeposit;
}
}
廣告