make governance more flexible for most frequent functions

Signed-off-by: Uncle Fatso <uncle.fatso@ghostchain.io>
This commit is contained in:
Uncle Fatso 2026-02-08 21:06:26 +03:00
parent 0f23d7bd3d
commit 2063923f8d
Signed by: f4ts0
GPG Key ID: 565F4F2860226EBB
3 changed files with 19 additions and 3 deletions

View File

@ -130,7 +130,12 @@ contract GhostBondDepository is IBondDepository, NoteKeeper {
address _quoteToken, address _quoteToken,
uint32[2] calldata _intervals, uint32[2] calldata _intervals,
bool[2] calldata _booleans bool[2] calldata _booleans
) external override onlyPolicy returns (uint256 id) { ) external override returns (uint256 id) {
if (
msg.sender != authority.governor() &&
msg.sender != authority.policy()
) revert NotGuardianOrPolicy();
uint256 secondsToConclusion = _terms[1] - block.timestamp; uint256 secondsToConclusion = _terms[1] - block.timestamp;
uint256 decimals = IERC20Metadata(_quoteToken).decimals(); uint256 decimals = IERC20Metadata(_quoteToken).decimals();
uint64 targetDebt = uint64(_booleans[0] uint64 targetDebt = uint64(_booleans[0]
@ -179,7 +184,12 @@ contract GhostBondDepository is IBondDepository, NoteKeeper {
emit MarketCreated(id, address(_ftso), _quoteToken, _market[1]); emit MarketCreated(id, address(_ftso), _quoteToken, _market[1]);
} }
function close(uint256 id) external override onlyPolicy { function close(uint256 id) external override {
if (
msg.sender != authority.governor() &&
msg.sender != authority.policy()
) revert NotGuardianOrPolicy();
terms[id].conclusion = uint48(block.timestamp); terms[id].conclusion = uint48(block.timestamp);
markets[id].capacity = 0; markets[id].capacity = 0;
emit MarketClosed(id); emit MarketClosed(id);

View File

@ -149,7 +149,12 @@ contract GhostTreasury is GhostAccessControlled, ITreasury {
emit RepayDebt(msg.sender, ftso, amount, amount); emit RepayDebt(msg.sender, ftso, amount, amount);
} }
function auditReserves() external onlyGovernor { function auditReserves() external {
if (
msg.sender != authority.governor() &&
msg.sender != authority.guardian()
) revert NotApproved();
uint256 reserves; uint256 reserves;
address[] memory reserveTokens = registry[STATUS.RESERVETOKEN]; address[] memory reserveTokens = registry[STATUS.RESERVETOKEN];

View File

@ -7,6 +7,7 @@ interface IBondDepository {
error DepositoryConcluded(uint48 concludedTime); error DepositoryConcluded(uint48 concludedTime);
error DepositoryMaxPrice(uint256 price, uint256 maxPrice); error DepositoryMaxPrice(uint256 price, uint256 maxPrice);
error DepositoryMaxSize(uint256 payout, uint256 maxPayout); error DepositoryMaxSize(uint256 payout, uint256 maxPayout);
error NotGuardianOrPolicy();
event MarketClosed(uint256 indexed id); event MarketClosed(uint256 indexed id);
event Bond(uint256 indexed id, uint256 amount, uint256 price); event Bond(uint256 indexed id, uint256 amount, uint256 price);