-
Notifications
You must be signed in to change notification settings - Fork 3
/
Api3Interfaces.sol
254 lines (212 loc) · 6.58 KB
/
Api3Interfaces.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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
// SPDX-License-Identifier: MIT
pragma solidity ^0.5.16;
pragma experimental ABIEncoderV2;
interface Api3IAirnodeRequester {
function airnodeProtocol() external view returns (address);
}
contract Api3IDapiServer is Api3IAirnodeRequester {
event SetRrpBeaconUpdatePermissionStatus(
address indexed sponsor,
address indexed rrpBeaconUpdateRequester,
bool status
);
event RequestedRrpBeaconUpdate(
bytes32 indexed beaconId,
address indexed sponsor,
address indexed requester,
bytes32 requestId,
address airnode,
bytes32 templateId
);
event RequestedRrpBeaconUpdateRelayed(
bytes32 indexed beaconId,
address indexed sponsor,
address indexed requester,
bytes32 requestId,
address airnode,
address relayer,
bytes32 templateId
);
event UpdatedBeaconWithRrp(
bytes32 indexed beaconId,
bytes32 requestId,
int256 value,
uint256 timestamp
);
event RegisteredBeaconUpdateSubscription(
bytes32 indexed subscriptionId,
address airnode,
bytes32 templateId,
bytes parameters,
bytes conditions,
address relayer,
address sponsor,
address requester,
bytes4 fulfillFunctionId
);
event UpdatedBeaconWithPsp(
bytes32 indexed beaconId,
bytes32 subscriptionId,
int224 value,
uint32 timestamp
);
event UpdatedBeaconWithSignedData(
bytes32 indexed beaconId,
int256 value,
uint256 timestamp
);
event UpdatedBeaconSetWithBeacons(
bytes32 indexed beaconSetId,
int224 value,
uint32 timestamp
);
event UpdatedBeaconSetWithSignedData(
bytes32 indexed dapiId,
int224 value,
uint32 timestamp
);
event AddedUnlimitedReader(address indexed unlimitedReader);
event SetDapiName(
bytes32 indexed dapiName,
bytes32 dataFeedId,
address indexed sender
);
function setRrpBeaconUpdatePermissionStatus(
address rrpBeaconUpdateRequester,
bool status
) external;
function requestRrpBeaconUpdate(
address airnode,
bytes32 templateId,
address sponsor
) external returns (bytes32 requestId);
function requestRrpBeaconUpdateRelayed(
address airnode,
bytes32 templateId,
address relayer,
address sponsor
) external returns (bytes32 requestId);
function fulfillRrpBeaconUpdate(
bytes32 requestId,
uint256 timestamp,
bytes calldata data
) external;
function registerBeaconUpdateSubscription(
address airnode,
bytes32 templateId,
bytes memory conditions,
address relayer,
address sponsor
) public returns (bytes32 subscriptionId);
function conditionPspBeaconUpdate(
bytes32 subscriptionId,
bytes calldata data,
bytes calldata conditionParameters
) external view returns (bool);
function fulfillPspBeaconUpdate(
bytes32 subscriptionId,
address airnode,
address relayer,
address sponsor,
uint256 timestamp,
bytes calldata data,
bytes calldata signature
) external;
function updateBeaconWithSignedData(
address airnode,
bytes32 beaconId,
uint256 timestamp,
bytes calldata data,
bytes calldata signature
) external;
function updateBeaconSetWithBeacons(bytes32[] memory beaconIds)
public
returns (bytes32 beaconSetId);
function updateBeaconSetWithBeaconsAndReturnCondition(
bytes32[] memory beaconIds,
uint256 updateThresholdInPercentage
) public returns (bool);
function conditionPspBeaconSetUpdate(
bytes32 subscriptionId,
bytes calldata data,
bytes calldata conditionParameters
) external returns (bool);
function fulfillPspBeaconSetUpdate(
bytes32 subscriptionId,
address airnode,
address relayer,
address sponsor,
uint256 timestamp,
bytes calldata data,
bytes calldata signature
) external;
function updateBeaconSetWithSignedData(
address[] memory airnodes,
bytes32[] memory templateIds,
uint256[] memory timestamps,
bytes[] memory data,
bytes[] memory signatures
) public returns (bytes32 beaconSetId);
function addUnlimitedReader(address unlimitedReader) external;
function setDapiName(bytes32 dapiName, bytes32 dataFeedId) external;
function dapiNameToDataFeedId(bytes32 dapiName)
external
view
returns (bytes32);
function readDataFeedWithId(bytes32 dataFeedId)
external
view
returns (int224 value, uint32 timestamp);
function readDataFeedValueWithId(bytes32 dataFeedId)
external
view
returns (int224 value);
function readDataFeedWithDapiName(bytes32 dapiName)
external
view
returns (int224 value, uint32 timestamp);
function readDataFeedValueWithDapiName(bytes32 dapiName)
external
view
returns (int224 value);
function readerCanReadDataFeed(bytes32 dataFeedId, address reader)
external
view
returns (bool);
function dataFeedIdToReaderToWhitelistStatus(
bytes32 dataFeedId,
address reader
)
external
view
returns (uint64 expirationTimestamp, uint192 indefiniteWhitelistCount);
function dataFeedIdToReaderToSetterToIndefiniteWhitelistStatus(
bytes32 dataFeedId,
address reader,
address setter
) external view returns (bool indefiniteWhitelistStatus);
function deriveBeaconId(address airnode, bytes32 templateId)
external
pure
returns (bytes32 beaconId);
function deriveBeaconSetId(bytes32[] memory beaconIds)
public
pure
returns (bytes32 beaconSetId);
// solhint-disable-next-line func-name-mixedcase
function DAPI_NAME_SETTER_ROLE_DESCRIPTION()
external
view
returns (string memory);
// solhint-disable-next-line func-name-mixedcase
function HUNDRED_PERCENT() external view returns (uint256);
function dapiNameSetterRole() external view returns (bytes32);
function sponsorToRrpBeaconUpdateRequesterToPermissionStatus(
address sponsor,
address updateRequester
) external view returns (bool);
function subscriptionIdToBeaconId(bytes32 subscriptionId)
external
view
returns (bytes32);
}