以太坊 - 开发 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; } }