Мой контракт компилируется нормально, пока я не добавлю "IERC1400TokensRecipient" (начиная с https://github.com/ConsenSys/ERC1400/blob/master/contracts/token/ERC1400Raw/IERC1400TokensRecipient.sol) в качестве интерфейса, от которого он наследуется.
Я реализую только две функции, которые имеет интерфейс, например это:
function canReceive(
bytes4 functionID,
bytes32 partition,
address operator,
address from,
address to,
uint value,
bytes calldata data,
bytes calldata operatorData
) external view returns(bool){
return true;
}
function tokensReceived(
bytes4 functionID,
bytes32 partition,
address operator,
address from,
address to,
uint value,
bytes calldata data,
bytes calldata operatorData
) external{
require(msg.sender == MY_TOKEN_ADDRESS, "only my token is accepted");
//let's do something here
}
Когда я компилирую, используя
трюфельная компиляция
Я получаю следующие странные предупреждения:
Обнаружены предупреждения о компиляции: ,,,,,,,,,,,,,,,
Тем не менее контракт компилируется. У артефакта моего контракта в папке сборки нет объекта ошибки.
Помимо этого предупреждения, моя последующая проблема заключается в том, что мне не удается создать экземпляр контракта из теста javascript, поскольку я get:
Возвращенная ошибка: VM Exception при обработке транзакции: нет газа
Есть предложения ?? спасибо!