Я думаю, вы имеете в виду макет хранилища, а не макет памяти.
uint
- это псевдоним для uint256
, который составляет 256 бит. Поэтому каждое значение, сохраненное в этом отображении, использует один 32-байтовый слот в хранилище.
EDIT
Для полной структуры Balance
каждый из них будет использовать два слота в хранилище, но один слот всегда будет равен нулю. Первый слот используется uint40
, а второй является заполнителем для mapping
, который на самом деле не имеет никакого сохраненного значения. С точки зрения стоимости газа, это бесплатно.
Таким образом, при сохранении нового Balance
записывается одно 32-байтовое слово в хранилище, а затем каждый uint
, добавляемый в отображение allowances
, записывает одно 32-байтовое слово в хранилище.