"Modular Contracts"中有使用映射的示例代码,但是我看不到每个映射索引值的赋值位置。
映射定义为:
mapping(address => uint256) balances;并将其传递到库函数“Balance”中:
library Balances {
function move(mapping(address => uint256) storage balances,
address from,
address to,
uint amount) internal {
require(balances[from] >= amount);
require(balances[to] + amount >= balances[to]);
balances[from] -= amount;
balances[to] += amount;
...但我看不到在整个code example的任何部分中,最初在balances中实际添加了什么值。
move函数首先检查balances[from] >= amount。在该函数的末尾,您会看到它对标识的balances进行加法和减法运算,但该代码永远不会到达,对吧?因为require(balances[from] >= amount);总是返回false。
我遗漏了什么?
发布于 2019-06-29 17:46:41
这只是一个模块化契约的例子,你可以在你的构造函数中添加任何余额,比如
constructor() public {
balances[yourAddress] = amount
}https://stackoverflow.com/questions/56814247
复制相似问题