@@ -46,6 +46,8 @@ message State {
4646 repeated Publisher publishers = 8 ;
4747 // List of governance sources.
4848 repeated GovernanceSourceState governance_sources = 9 ;
49+ // Currently active feature flags. Feature flags influence the aggregator's behavior.
50+ repeated string feature_flags = 10 ;
4951}
5052
5153// An item of the state describing a publisher.
@@ -58,6 +60,8 @@ message Publisher {
5860 repeated bytes public_keys = 3 ;
5961 // [required] If true, the publisher is active, i.e. it's allowed to publish updates.
6062 optional bool is_active = 4 ;
63+ // IDs of the feeds for which the publisher's price will be included in the aggregate.
64+ repeated uint32 allowed_feed_ids = 5 ;
6165}
6266
6367enum FeedState {
@@ -112,6 +116,8 @@ message Feed {
112116 optional FeedState state = 107 ;
113117 // [required] Feed kind.
114118 optional FeedKind kind = 108 ;
119+ // [required] Current aggregated data of the feed.
120+ optional FeedDataFields aggregated_data = 109 ;
115121
116122
117123 // [required] Feed status in the current shard. Disabled feeds will not be visible in
@@ -158,16 +164,21 @@ message FeedData {
158164 optional google.protobuf.Timestamp source_timestamp = 1 ;
159165 // [required] Timestamp of the publisher.
160166 optional google.protobuf.Timestamp publisher_timestamp = 2 ;
167+ // [required] Values of the data fields.
168+ optional FeedDataFields fields = 3 ;
169+ }
170+
171+ message FeedDataFields {
161172 // [optional] Best executable price. Can be absent if no data is available. Never present for funding rate feeds.
162- optional int64 price = 3 ;
173+ optional int64 price = 1 ;
163174 // [optional] Best bid price. Can be absent if no data is available. Never present for funding rate feeds.
164- optional int64 best_bid_price = 4 ;
175+ optional int64 best_bid_price = 2 ;
165176 // [optional] Best ask price. Can be absent if no data is available. Never present for funding rate feeds.
166- optional int64 best_ask_price = 5 ;
177+ optional int64 best_ask_price = 3 ;
167178 // [optional] Funding rate. Can be absent if no data is available. Can only be present for funding rate feeds.
168- optional int64 funding_rate = 6 ;
179+ optional int64 funding_rate = 4 ;
169180 // [optional] Funding rate interval. Can be absent if no data is available. Can only be present for funding rate feeds.
170- optional google.protobuf.Duration funding_rate_interval = 7 ;
181+ optional google.protobuf.Duration funding_rate_interval = 5 ;
171182}
172183
173184// State associated with a governance source.
@@ -206,6 +217,8 @@ message Permissions {
206217 // including operations added in the future.
207218 UPDATE_FEED = 112 ;
208219 REMOVE_FEED = 113 ;
220+ ADD_FEATURE_FLAG = 114 ;
221+ REMOVE_FEATURE_FLAG = 115 ;
209222 }
210223
211224 enum UpdateGovernanceSourceAction {
@@ -222,6 +235,9 @@ message Permissions {
222235 REMOVE_PUBLISHER_PUBLIC_KEYS = 103 ;
223236 SET_PUBLISHER_PUBLIC_KEYS = 104 ;
224237 SET_PUBLISHER_ACTIVE = 105 ;
238+ ADD_PUBLISHER_ALLOWED_FEED_IDS = 106 ;
239+ REMOVE_PUBLISHER_ALLOWED_FEED_IDS = 107 ;
240+ SET_PUBLISHER_ALLOWED_FEED_IDS = 108 ;
225241 }
226242
227243 enum UpdateFeedAction {
0 commit comments