sKlima

Git Source

Inherits: ERC20Permit, Ownable

State Variables

monetaryPolicy

address public monetaryPolicy;

stakingContract

address public stakingContract;

MAX_UINT256

uint256 private constant MAX_UINT256 = ~uint256(0);

INITIAL_FRAGMENTS_SUPPLY

uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 500_000 * 10 ** 9;

TOTAL_GONS

uint256 private constant TOTAL_GONS = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY);

MAX_SUPPLY

uint256 private constant MAX_SUPPLY = ~uint128(0);

_gonsPerFragment

uint256 private _gonsPerFragment;

_gonBalances

mapping(address => uint256) private _gonBalances;

_allowedFragments

mapping(address => mapping(address => uint256)) private _allowedFragments;

Functions

onlyMonetaryPolicy

modifier onlyMonetaryPolicy();

validRecipient

modifier validRecipient(address to);

constructor

constructor() ERC20("Staked Klima", "sKLIMA", 9);

setStakingContract

function setStakingContract(address newStakingContract_) external onlyOwner;

setMonetaryPolicy

function setMonetaryPolicy(address monetaryPolicy_) external onlyOwner;

rebase

function rebase(uint256 olyProfit) public onlyMonetaryPolicy returns (uint256);

balanceOf

function balanceOf(address who) public view override returns (uint256);

circulatingSupply

function circulatingSupply() public view returns (uint256);

transfer

function transfer(address to, uint256 value) public override validRecipient(to) returns (bool);

allowance

function allowance(address owner_, address spender) public view override returns (uint256);

transferFrom

function transferFrom(address from, address to, uint256 value) public override validRecipient(to) returns (bool);

approve

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

_approve

function _approve(address owner, address spender, uint256 value) internal virtual override;

increaseAllowance

function increaseAllowance(address spender, uint256 addedValue) public override returns (bool);

decreaseAllowance

function decreaseAllowance(address spender, uint256 subtractedValue) public override returns (bool);

Events

LogRebase

event LogRebase(uint256 indexed epoch, uint256 totalSupply);

LogMonetaryPolicyUpdated

event LogMonetaryPolicyUpdated(address monetaryPolicy);