Я хочу передать один параметр в виде массива в вызов функции:
contract MyToken is StandaloneERC20 {
function initialize(
address owner,
address minter,
address[] memory pausers
) public initializer {
address[] memory minters = [minter];
StandaloneERC20.initialize("MyToken", "MTK", uint8(18), minters, pausers);
}
StandaloneERC20.initialize
ожидает массив для четвертого аргумента minters
:
function initialize(
string memory name, string memory symbol, uint8 decimals, address[] memory minters, address[] memory pausers
) public initializer {
Однако, используя мой код, я получаю следующую ошибку компилятора с надежностью 0.5.7:
TypeError: Type address[1] memory is not implicitly convertible to expected type address[] memory.
address[] memory minters = [minter];
^---------------------------------^
Я также пытался передать minter как аргумент-массив:
contract MyToken is StandaloneERC20 {
function initialize(
address owner,
address minter,
address[] memory pausers
) public initializer {
StandaloneERC20.initialize("MyToken", "MTK", uint8(18), [minter], pausers);
}
Но, похоже, это полностью отличается от того, что я ожидал из-за ошибки компилятора:
Member "initialize" not found or not visible after argument-dependent lookup in type(contract StandaloneERC20).
StandaloneERC20.initialize("MyToken", "MT", uint8(18), [minter], pausers);
^------------------------^
Как передать один аргумент в виде массива?