34 lines
1.4 KiB
Solidity
34 lines
1.4 KiB
Solidity
// SPDX-License-Identifier: MIT
|
|
pragma solidity ^0.8.20;
|
|
|
|
import {IERC20} from "@openzeppelin-contracts/token/ERC20/IERC20.sol";
|
|
|
|
interface ISTNK is IERC20 {
|
|
error NotStakingContract();
|
|
error NotTreasury();
|
|
error InsufficientBalance();
|
|
error DebtExists();
|
|
error NotInitializer();
|
|
|
|
event LogSupply(uint256 indexed epoch, uint256 totalSupply);
|
|
event LogRebase(uint256 indexed epoch, uint256 rebase, uint256 index);
|
|
event LogStakingContractUpdated(address stakingContract);
|
|
|
|
function rebase(uint256 profit_, uint256 epoch_) external returns (uint256);
|
|
function increaseAllowance(address spender, uint256 imbalance) external returns (bool);
|
|
function decreaseAllowance(address spender, uint256 imbalance) external returns (bool);
|
|
function circulatingSupply() external view returns (uint256);
|
|
function treasury() external view returns (address);
|
|
function sharesForBalance(uint256 amount) external view returns (uint256);
|
|
function balanceForShares(uint256 shares) external view returns (uint256);
|
|
function index() external view returns (uint256);
|
|
function toGhst(uint256 amount) external view returns (uint256);
|
|
function fromGhst(uint256 amount) external view returns (uint256);
|
|
function debtBalances(address _address) external view returns (uint256);
|
|
function changeDebt(
|
|
uint256 amount,
|
|
address debtor,
|
|
bool add
|
|
) external;
|
|
}
|