AC
Size: a a a
AC
VK
AC
AC
AC
VK
VK
VK
AC
T3
e

Data location must be "memory" or "calldata" for parameter in function, but none was given
Если поставить для city модификатор memory, то всё исправляется. У меня есть 2 нубских вопроса: memory только один параметр, а не все?EG
e
uint8, uint32 и тдe
e

// SPDX-License-Identifier: MITЕсли вызвать
pragma solidity >=0.4.22 <0.9.0;
contract StoreContract {
struct Store {
string city;
uint balance;
}
mapping (address => Store) public stores;
function getStore(address account) public view returns (Store memory) {
return stores[account];
}
function addStore(address account, Store memory store) public {
stores[account] = store;
}
}
addStore c параметрами как на скрине, то выдаёт ошибку: transact to StoreContract.addStore errored: Error encoding arguments: Error: types/values length mismatch (count={"types":2"values":3} value={"types":["address""tuple(stringuint256)"]"values":["0xAdabc19112Bd5C5e7FBB07bD60aa3c97b70708B9""("" 1000)"]} code=INVALID_ARGUMENT version=abi/5.4.1)e
tuple. Я знаю, что можно решить проблему, передав по отдельности city и balance, но просто хотел разобраться, почему у меня в данном случае не работает.addStore указал аргумент store с модификатором memory. Но там на выбор: memory или calldata, и, как мне кажется, calldata это вообще про что-то другое.e
tuple при вызове external-функцийEG
EG