@alex_devPY

Для чего нужен интерфейс смарт-контракта?

Приветствую. Коллеги, для чего нужен интерфес смарт контракта?

pragma solidity ^0.5.0;

/**
 * @title ERC20 interface
 * @dev see https://eips.ethereum.org/EIPS/eip-20
 */
interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}
  • Вопрос задан
  • 418 просмотров
Решения вопроса 1
@Tyavochka
Solidity Developer
Интерфейс необходим для вызова любой функции контракта из клиента или другого контракта.
В вызов входит сигнатура метода - первые 4 байта хеша от имени функции и ее параметров (без возвращаемого значения).
В большинстве случаев у вас есть весь контракт и нет необходимости выделять отдельно интерфейс.
Интерфейс может помочь унифицировать код, а также пригодится там, где точно неизвестна реализация контракта - например нужна работа с любыми токенами, которые поддерживают ERC20.
Еще интерфейс будет полезен для всяких грязных хаков с fallback функциями и delegatecall (proxy) - когда вызов идет через промежуточный контракт.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
думаете, еще оживет?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы