Я создаю токен-контракт, используя ремикс.
Код функции AppAndCall выглядит следующим образом.
function approveAndCall(address _spender, uint256 _value, bytes
_extraData) public
returns (bool success) {
allowance[msg.sender][_spender] = _value;
tokenRecipient spender = tokenRecipient(_spender);
if (approve(_spender, _value)) {
spender.receiveApproval(msg.sender, _value, this, _extraData);
return true;
}
Когда я запускаю эту функцию, она показывает:
appendAndCall errored: Аргументы кодирования ошибки: Ошибка: недопустимое значение байта (arg=undefined, type="number", value=undefined)
Что мне написать в строке «bytes _extraData»?
Я бы предложил изменить тип данных _extraData на строку тем временем, пока вы все еще тестируете свой контракт в среде ремиксов, чтобы получить читаемые данные и просто изменить их обратно на байты при развертывании вашего контракта.
Однако, если вы действительно хотите протестировать его с помощью байтов, вы можете просто использовать любое из этих образцов значений. 0x1262, 0x12, 0x12
просто напишите 0x00
, это будет работать, как будто ваша receiveApproval
функция его не использует.
Надеюсь, это поможет.