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 方法将会修改合同的 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;
}
}