Git Source
address public owner;
address public newOwner;
address public immutable pKLIMA;
address public immutable KLIMA;
address public immutable BCT;
address public immutable treasury;
address public immutable circulatingKLIMAContract;
mapping(address => Term) public terms;
mapping(address => address) public walletChange;
bool hasMigrated;
constructor(address _pKLIMA, address _KLIMA, address _BCT, address _treasury, address _circulatingKLIMAContract);
function setTerms(address _vester, uint256 _amountCanClaim, uint256 _rate) external returns (bool);
function exercise(uint256 _amount) external returns (bool);
function pushWalletChange(address _newWallet) external returns (bool);
function pullWalletChange(address _oldWallet) external returns (bool);
function redeemableFor(address _vester) public view returns (uint256);
function redeemable(Term memory _info) internal view returns (uint256);
function pushOwnership(address _newOwner) external returns (bool);
function pullOwnership() external returns (bool);
struct Term {
uint256 percent;
uint256 claimed;
uint256 max;
}