以太坊 - 开发 MyContract


我们将我们的合同命名为MyContract,如以下声明所示 -

contract MyContract {

我们将声明两个变量如下 -

uint amount;
uint value;

可变金额将保存合约执行者发送给合约创建者的累积资金。价值字段将保存合同价值当执行者执行合约时,价值字段将被修改以反映平衡的合约价值。

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

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

最初,合约上收集的金额为零,我们将amount字段设置为 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方法的执行将修改合约的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;
   }
}