Ethereum 简明教程

Ethereum - Developing 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 方法将会修改合同的 valueamount 字段。

完整的合同代码如下 −

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;
   }
}