📜  以太坊-开发MyContract

📅  最后修改于: 2020-10-31 13:18:45             🧑  作者: Mango


我们将在以下声明中将我们的合同命名为MyContract-

contract MyContract {

我们将声明两个变量,如下所示:

uint amount;
uint value;

可变金额将保留合同执行人发送给合同创建者的累计款项。价值字段将保存合同价值。当执行者执行合同时,“值”字段将被修改以反映平衡的合同价值。

在合同构造函数中,我们设置这两个变量的值。

constructor (uint initialAmount, uint initialValue) public {
   amount = 0;
   value = 1000;
}

与最初一样,合同上收集的金额为零,我们将金额字段设置为0。我们将合同价值设置为任意数字,在这种情况下为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方法的执行将修改合同的价值金额字段。

完整的合同代码如下-

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