Например, у меня есть контракт UseETH, который должен получать только эфир, и контракт UseUSD, который должен быть только стабильным. Вся математика и логика c этих контрактов зависит от базового c актива (ETH или Stable).
Я хочу построить один общий интерфейс
interface core{
// different methods for UseETH and UseUSD
function pay() external payable returns (uint256);
function pay(uint256 _amount) external returns (uint256);
function calculate(uint256 _amount) external returns (uint256);
function withdraw(uint256 _amount)external returns (uint256);
}
contract UseETH is core ...
contract UseUSD is core ...
, но из-за тот факт, что методы депозита разные, я не могу этого сделать.
Возможно ли это как-то так?
interface core{
function pay; // can be override with payable modiffier or params
function calculate(uint256 _amount) external returns (uint256);
function withdraw(uint256 _amount)external returns (uint256);
}