В «Модульные контракты» есть пример кода , в котором используется сопоставление, но я не вижу, где назначаются значения каждого индекса сопоставления.
Отображение определяется как:
mapping(address => uint256) balances;
и передается в библиотеку функции «Балансы»:
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;
...
Но я не вижу, где какое-либо значение фактически добавляется к balances
в какой-либо части полного примера кода .
Функция move
сначала проверяет, является ли balances[from] >= amount
. В конце этой функции вы видите, что она добавляет и вычитает из идентифицированного balances
, но этот код никогда не будет достигнут, верно? Поскольку require(balances[from] >= amount);
всегда будет возвращать false.
Что мне не хватает?