-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathISelfKisser.sol
50 lines (40 loc) · 1.58 KB
/
ISelfKisser.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.16;
interface ISelfKisser {
/// @notice Thrown if SelfKisser dead.
error Dead();
/// @notice Emitted when SelfKisser killed.
/// @param caller The caller's address.
event Killed(address indexed caller);
/// @notice Emitted when new address kissed on an oracle.
/// @param caller The caller's address.
/// @param oracle The oracle on which address `who` got kissed on.
/// @param who The address that got kissed on oracle `oracle`.
event SelfKissed(
address indexed caller, address indexed oracle, address indexed who
);
// -- User Functionality --
/// @notice Kisses caller on oracle `oracle`.
///
/// @dev Reverts if oracle `oracle` not supported.
/// @dev Reverts if SelfKisser dead.
///
/// @param oracle The oracle to kiss the caller on.
function selfKiss(address oracle) external;
/// @notice Kisses address `who` on oracle `oracle`.
///
/// @dev Reverts if oracle `oracle` not supported.
/// @dev Reverts if SelfKisser dead.
///
/// @param oracle The oracle to kiss address `who` on.
/// @param who The address to kiss on oracle `oracle`.
function selfKiss(address oracle, address who) external;
// -- View Functionality --
/// @notice Returns whether SelfKisser is dead.
/// @return True if SelfKisser dead, false otherwise.
function dead() external view returns (bool);
// -- Auth'ed Functionality --
/// @notice Kills the contract.
/// @dev Only callable by auth'ed address.
function kill() external;
}