- 以太坊教程
- 以太坊 - 主页
- 以太坊 - 介绍
- 以太坊 - 智能合约
- 以太坊 - 基于 Solidity 的合约编写
- 以太坊 - 正在开发 MyContract
- 以太坊 - 编译合约
- 以太坊 - 部署合约
- 以太坊 - 与合约交互
- 以太坊 - Remix 的限制
- 以太坊 - Ganache for Blockchain
- 以太坊 - Ganache 服务器设置
- 以太坊 - 快速演练
- 以太坊 - MyEtherWallet
- 以太坊 - 创建钱包
- 将钱包附加至 Ganache Blockchain
- 以太坊 - 部署合约
- 与已部署的合约交互
- 以太坊 - 创建合约用户
- 以太坊 - 摘要
- 以太坊实用资源
- 以太坊 - 快速指南
- 以太坊 - 实用资源
- 以太坊 - 讨论
以太坊 - 正在开发 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;
}
}
广告