Solidity, что не так с кодом? При выполнении функции massNotify вылезает ошибка "transact to TokenName.massNotify errored: Error encoding arguments: SyntaxError: Unexpected token x in JSON at position 1". Адрес ввожу вроде правильно:"0xdc8f20170c0946accf9627b3eb1513cfd1c0499f", "0xcE6D9f910a35d21b82ef0D86537E3dfd5EaDeb3A" Сама функция по идее должна отправлять одинаковое кол-во токенов на массив адресов.
Вот код massNotify:function massNotify (address [] _owners) {
require (msg.sender == owner);
uint256 count = _owners.length;
for (uint256 i = 0; i balanceOf (msg.sender)) return false;
else {
materializeBalanceIfNeeded (msg.sender, _value);
return AbstractToken.transfer (_to, _value);
}
}
Пробовал удалить все буквы, но выдает ошибку "transact to TokenName.massNotify errored: Error encoding arguments: TypeError: Cannot read property 'toArray' of undefined". Да и без букв не особо и смысл есть.
Код стащил с другого токена, вот и непонятно почему не работает. Тестил в Ropsten. Версия Solidity 0.4.16

21 Авг 2019 в 06:22
258 +1
0
Ответы
1

Ошибка, которую вы получаете, скорее всего связана с тем, что вы пытаетесь передать массив адресов в качестве аргумента функции massNotify. Solidity не поддерживает передачу массивов в качестве аргументов при вызове функции извне контракта.

Чтобы исправить это, вам нужно изменить реализацию функции massNotify таким образом, чтобы она принимала адрес каждого получателя в качестве отдельного аргумента. Например, вы можете изменить функцию так:

function massNotify (address _owner1, address _owner2) {
require (msg.sender == owner);
Transfer (address (0), _owner1, VIRTUAL_COUNT);
Transfer (address (0), _owner2, VIRTUAL_COUNT);
}

Затем вызовите эту функцию, передавая адреса получателей в качестве аргументов:

massNotify(0xdc8f20170c0946accf9627b3eb1513cfd1c0499f, 0xcE6D9f910a35d21b82ef0D86537E3dfd5EaDeb3A);

Помните, что вы можете дополнить этот подход, чтобы поддерживать любое количество адресов получателей, добавив соответствующие аргументы в функцию и вызывая Transfer для каждого адреса.

20 Апр в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 94 956 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир