- 以太坊教程
- 以太坊 - 主页
- 以太坊 - 简介
- 以太坊 - 智能合约
- 以太坊 - 合约编写的可靠性
- 以太坊 - 开发 MyContract
- 以太坊 - 编译合约
- 以太坊 - 部署合约
- 以太坊 - 与合约交互
- 以太坊 - Remix 的局限性
- 以太坊 - Ganache 区块链
- 以太坊 - Ganache 服务器设置
- 以太坊 - 快速演练
- 以太坊 - MyEtherWallet
- 以太坊 - 创建钱包
- 将钱包附加到 Ganache 区块链
- 以太坊 - 部署合约
- 与已部署的合约交互
- 以太坊 - 创建合约用户
- 以太坊 - 总结
- 以太坊有用资源
- 以太坊 - 快速指南
- 以太坊 - 有用的资源
- 以太坊 - 讨论
以太坊 - 开发 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方法的执行将修改合约的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; } }