@dcl/protocol 1.0.0-34381335718.commit-3c838bb → 1.0.0-34643020503.commit-6402953

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/out-js/decentraland/kernel/apis/restricted_actions.gen.d.ts +22 -2
  2. package/out-js/decentraland/kernel/apis/restricted_actions.gen.js +110 -6
  3. package/out-js/decentraland/kernel/apis/restricted_actions.gen.js.map +1 -1
  4. package/out-js/decentraland/kernel/comms/rfc4/comms.gen.d.ts +0 -21
  5. package/out-js/decentraland/kernel/comms/rfc4/comms.gen.js +4 -124
  6. package/out-js/decentraland/kernel/comms/rfc4/comms.gen.js.map +1 -1
  7. package/out-js/decentraland/sdk/components/avatar_shape.gen.d.ts +0 -8
  8. package/out-js/decentraland/sdk/components/avatar_shape.gen.js +1 -35
  9. package/out-js/decentraland/sdk/components/avatar_shape.gen.js.map +1 -1
  10. package/out-js/decentraland/sdk/components/common/explorer_ui.gen.d.ts +3 -1
  11. package/out-js/decentraland/sdk/components/common/explorer_ui.gen.js +8 -1
  12. package/out-js/decentraland/sdk/components/common/explorer_ui.gen.js.map +1 -1
  13. package/out-js/decentraland/sdk/components/explorer_item_purchase_result.gen.d.ts +78 -0
  14. package/out-js/decentraland/sdk/components/explorer_item_purchase_result.gen.js +308 -0
  15. package/out-js/decentraland/sdk/components/explorer_item_purchase_result.gen.js.map +1 -0
  16. package/out-js/decentraland/sdk/components/explorer_ui_events_result.gen.d.ts +8 -3
  17. package/out-js/decentraland/sdk/components/explorer_ui_events_result.gen.js +16 -4
  18. package/out-js/decentraland/sdk/components/explorer_ui_events_result.gen.js.map +1 -1
  19. package/out-ts/decentraland/kernel/apis/restricted_actions.gen.ts +127 -4
  20. package/out-ts/decentraland/kernel/comms/rfc4/comms.gen.ts +2 -166
  21. package/out-ts/decentraland/sdk/components/avatar_shape.gen.ts +0 -34
  22. package/out-ts/decentraland/sdk/components/common/explorer_ui.gen.ts +8 -1
  23. package/out-ts/decentraland/sdk/components/explorer_item_purchase_result.gen.ts +370 -0
  24. package/out-ts/decentraland/sdk/components/explorer_ui_events_result.gen.ts +22 -4
  25. package/package.json +3 -3
  26. package/proto/decentraland/kernel/apis/restricted_actions.proto +12 -6
  27. package/proto/decentraland/kernel/comms/rfc4/comms.proto +0 -11
  28. package/proto/decentraland/sdk/components/avatar_shape.proto +0 -5
  29. package/proto/decentraland/sdk/components/common/explorer_ui.proto +2 -1
  30. package/proto/decentraland/sdk/components/explorer_item_purchase_result.proto +24 -0
  31. package/proto/decentraland/sdk/components/explorer_ui_events_result.proto +5 -3
  32. package/proto/decentraland/sdk/components/light_source.proto +1 -1
  33. package/public/sdk-components.proto +1 -0
@@ -0,0 +1,370 @@
1
+ /* eslint-disable */
2
+ import _m0 from "protobufjs/minimal";
3
+
4
+ export const protobufPackage = "decentraland.sdk.components";
5
+
6
+ /**
7
+ * Grow-only value set appended to the scene root entity.
8
+ * Reports the outcome of an EU_ITEM_PURCHASE flow triggered via OpenExplorerUi.
9
+ */
10
+ export interface PBExplorerItemPurchaseResult {
11
+ urn: string;
12
+ /** The scene tick when the event occurred */
13
+ timestamp: number;
14
+ /** The OpenExplorerUiRequest.request_id that caused this event; 0 when the request carried none */
15
+ requestId: number;
16
+ status?:
17
+ | { $case: "purchased"; purchased: PBExplorerItemPurchaseResult_Purchased }
18
+ | { $case: "dismissed"; dismissed: PBExplorerItemPurchaseResult_Dismissed }
19
+ | { $case: "failed"; failed: PBExplorerItemPurchaseResult_Failed }
20
+ | undefined;
21
+ }
22
+
23
+ export interface PBExplorerItemPurchaseResult_Purchased {
24
+ }
25
+
26
+ export interface PBExplorerItemPurchaseResult_Dismissed {
27
+ }
28
+
29
+ export interface PBExplorerItemPurchaseResult_Failed {
30
+ }
31
+
32
+ function createBasePBExplorerItemPurchaseResult(): PBExplorerItemPurchaseResult {
33
+ return { urn: "", timestamp: 0, requestId: 0, status: undefined };
34
+ }
35
+
36
+ export namespace PBExplorerItemPurchaseResult {
37
+ export function encode(message: PBExplorerItemPurchaseResult, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
38
+ if (message.urn !== "") {
39
+ writer.uint32(10).string(message.urn);
40
+ }
41
+ if (message.timestamp !== 0) {
42
+ writer.uint32(16).uint32(message.timestamp);
43
+ }
44
+ if (message.requestId !== 0) {
45
+ writer.uint32(24).uint32(message.requestId);
46
+ }
47
+ switch (message.status?.$case) {
48
+ case "purchased":
49
+ PBExplorerItemPurchaseResult_Purchased.encode(message.status.purchased, writer.uint32(82).fork()).ldelim();
50
+ break;
51
+ case "dismissed":
52
+ PBExplorerItemPurchaseResult_Dismissed.encode(message.status.dismissed, writer.uint32(90).fork()).ldelim();
53
+ break;
54
+ case "failed":
55
+ PBExplorerItemPurchaseResult_Failed.encode(message.status.failed, writer.uint32(98).fork()).ldelim();
56
+ break;
57
+ }
58
+ return writer;
59
+ }
60
+
61
+ export function decode(input: _m0.Reader | Uint8Array, length?: number): PBExplorerItemPurchaseResult {
62
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
63
+ let end = length === undefined ? reader.len : reader.pos + length;
64
+ const message = createBasePBExplorerItemPurchaseResult();
65
+ while (reader.pos < end) {
66
+ const tag = reader.uint32();
67
+ switch (tag >>> 3) {
68
+ case 1:
69
+ if (tag !== 10) {
70
+ break;
71
+ }
72
+
73
+ message.urn = reader.string();
74
+ continue;
75
+ case 2:
76
+ if (tag !== 16) {
77
+ break;
78
+ }
79
+
80
+ message.timestamp = reader.uint32();
81
+ continue;
82
+ case 3:
83
+ if (tag !== 24) {
84
+ break;
85
+ }
86
+
87
+ message.requestId = reader.uint32();
88
+ continue;
89
+ case 10:
90
+ if (tag !== 82) {
91
+ break;
92
+ }
93
+
94
+ message.status = {
95
+ $case: "purchased",
96
+ purchased: PBExplorerItemPurchaseResult_Purchased.decode(reader, reader.uint32()),
97
+ };
98
+ continue;
99
+ case 11:
100
+ if (tag !== 90) {
101
+ break;
102
+ }
103
+
104
+ message.status = {
105
+ $case: "dismissed",
106
+ dismissed: PBExplorerItemPurchaseResult_Dismissed.decode(reader, reader.uint32()),
107
+ };
108
+ continue;
109
+ case 12:
110
+ if (tag !== 98) {
111
+ break;
112
+ }
113
+
114
+ message.status = {
115
+ $case: "failed",
116
+ failed: PBExplorerItemPurchaseResult_Failed.decode(reader, reader.uint32()),
117
+ };
118
+ continue;
119
+ }
120
+ if ((tag & 7) === 4 || tag === 0) {
121
+ break;
122
+ }
123
+ reader.skipType(tag & 7);
124
+ }
125
+ return message;
126
+ }
127
+
128
+ export function fromJSON(object: any): PBExplorerItemPurchaseResult {
129
+ return {
130
+ urn: isSet(object.urn) ? String(object.urn) : "",
131
+ timestamp: isSet(object.timestamp) ? Number(object.timestamp) : 0,
132
+ requestId: isSet(object.requestId) ? Number(object.requestId) : 0,
133
+ status: isSet(object.purchased)
134
+ ? { $case: "purchased", purchased: PBExplorerItemPurchaseResult_Purchased.fromJSON(object.purchased) }
135
+ : isSet(object.dismissed)
136
+ ? { $case: "dismissed", dismissed: PBExplorerItemPurchaseResult_Dismissed.fromJSON(object.dismissed) }
137
+ : isSet(object.failed)
138
+ ? { $case: "failed", failed: PBExplorerItemPurchaseResult_Failed.fromJSON(object.failed) }
139
+ : undefined,
140
+ };
141
+ }
142
+
143
+ export function toJSON(message: PBExplorerItemPurchaseResult): unknown {
144
+ const obj: any = {};
145
+ message.urn !== undefined && (obj.urn = message.urn);
146
+ message.timestamp !== undefined && (obj.timestamp = Math.round(message.timestamp));
147
+ message.requestId !== undefined && (obj.requestId = Math.round(message.requestId));
148
+ message.status?.$case === "purchased" &&
149
+ (obj.purchased = message.status?.purchased
150
+ ? PBExplorerItemPurchaseResult_Purchased.toJSON(message.status?.purchased)
151
+ : undefined);
152
+ message.status?.$case === "dismissed" &&
153
+ (obj.dismissed = message.status?.dismissed
154
+ ? PBExplorerItemPurchaseResult_Dismissed.toJSON(message.status?.dismissed)
155
+ : undefined);
156
+ message.status?.$case === "failed" &&
157
+ (obj.failed = message.status?.failed
158
+ ? PBExplorerItemPurchaseResult_Failed.toJSON(message.status?.failed)
159
+ : undefined);
160
+ return obj;
161
+ }
162
+
163
+ export function create<I extends Exact<DeepPartial<PBExplorerItemPurchaseResult>, I>>(
164
+ base?: I,
165
+ ): PBExplorerItemPurchaseResult {
166
+ return PBExplorerItemPurchaseResult.fromPartial(base ?? {});
167
+ }
168
+
169
+ export function fromPartial<I extends Exact<DeepPartial<PBExplorerItemPurchaseResult>, I>>(
170
+ object: I,
171
+ ): PBExplorerItemPurchaseResult {
172
+ const message = createBasePBExplorerItemPurchaseResult();
173
+ message.urn = object.urn ?? "";
174
+ message.timestamp = object.timestamp ?? 0;
175
+ message.requestId = object.requestId ?? 0;
176
+ if (
177
+ object.status?.$case === "purchased" &&
178
+ object.status?.purchased !== undefined &&
179
+ object.status?.purchased !== null
180
+ ) {
181
+ message.status = {
182
+ $case: "purchased",
183
+ purchased: PBExplorerItemPurchaseResult_Purchased.fromPartial(object.status.purchased),
184
+ };
185
+ }
186
+ if (
187
+ object.status?.$case === "dismissed" &&
188
+ object.status?.dismissed !== undefined &&
189
+ object.status?.dismissed !== null
190
+ ) {
191
+ message.status = {
192
+ $case: "dismissed",
193
+ dismissed: PBExplorerItemPurchaseResult_Dismissed.fromPartial(object.status.dismissed),
194
+ };
195
+ }
196
+ if (object.status?.$case === "failed" && object.status?.failed !== undefined && object.status?.failed !== null) {
197
+ message.status = {
198
+ $case: "failed",
199
+ failed: PBExplorerItemPurchaseResult_Failed.fromPartial(object.status.failed),
200
+ };
201
+ }
202
+ return message;
203
+ }
204
+ }
205
+
206
+ function createBasePBExplorerItemPurchaseResult_Purchased(): PBExplorerItemPurchaseResult_Purchased {
207
+ return {};
208
+ }
209
+
210
+ export namespace PBExplorerItemPurchaseResult_Purchased {
211
+ export function encode(
212
+ _: PBExplorerItemPurchaseResult_Purchased,
213
+ writer: _m0.Writer = _m0.Writer.create(),
214
+ ): _m0.Writer {
215
+ return writer;
216
+ }
217
+
218
+ export function decode(input: _m0.Reader | Uint8Array, length?: number): PBExplorerItemPurchaseResult_Purchased {
219
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
220
+ let end = length === undefined ? reader.len : reader.pos + length;
221
+ const message = createBasePBExplorerItemPurchaseResult_Purchased();
222
+ while (reader.pos < end) {
223
+ const tag = reader.uint32();
224
+ switch (tag >>> 3) {
225
+ }
226
+ if ((tag & 7) === 4 || tag === 0) {
227
+ break;
228
+ }
229
+ reader.skipType(tag & 7);
230
+ }
231
+ return message;
232
+ }
233
+
234
+ export function fromJSON(_: any): PBExplorerItemPurchaseResult_Purchased {
235
+ return {};
236
+ }
237
+
238
+ export function toJSON(_: PBExplorerItemPurchaseResult_Purchased): unknown {
239
+ const obj: any = {};
240
+ return obj;
241
+ }
242
+
243
+ export function create<I extends Exact<DeepPartial<PBExplorerItemPurchaseResult_Purchased>, I>>(
244
+ base?: I,
245
+ ): PBExplorerItemPurchaseResult_Purchased {
246
+ return PBExplorerItemPurchaseResult_Purchased.fromPartial(base ?? {});
247
+ }
248
+
249
+ export function fromPartial<I extends Exact<DeepPartial<PBExplorerItemPurchaseResult_Purchased>, I>>(
250
+ _: I,
251
+ ): PBExplorerItemPurchaseResult_Purchased {
252
+ const message = createBasePBExplorerItemPurchaseResult_Purchased();
253
+ return message;
254
+ }
255
+ }
256
+
257
+ function createBasePBExplorerItemPurchaseResult_Dismissed(): PBExplorerItemPurchaseResult_Dismissed {
258
+ return {};
259
+ }
260
+
261
+ export namespace PBExplorerItemPurchaseResult_Dismissed {
262
+ export function encode(
263
+ _: PBExplorerItemPurchaseResult_Dismissed,
264
+ writer: _m0.Writer = _m0.Writer.create(),
265
+ ): _m0.Writer {
266
+ return writer;
267
+ }
268
+
269
+ export function decode(input: _m0.Reader | Uint8Array, length?: number): PBExplorerItemPurchaseResult_Dismissed {
270
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
271
+ let end = length === undefined ? reader.len : reader.pos + length;
272
+ const message = createBasePBExplorerItemPurchaseResult_Dismissed();
273
+ while (reader.pos < end) {
274
+ const tag = reader.uint32();
275
+ switch (tag >>> 3) {
276
+ }
277
+ if ((tag & 7) === 4 || tag === 0) {
278
+ break;
279
+ }
280
+ reader.skipType(tag & 7);
281
+ }
282
+ return message;
283
+ }
284
+
285
+ export function fromJSON(_: any): PBExplorerItemPurchaseResult_Dismissed {
286
+ return {};
287
+ }
288
+
289
+ export function toJSON(_: PBExplorerItemPurchaseResult_Dismissed): unknown {
290
+ const obj: any = {};
291
+ return obj;
292
+ }
293
+
294
+ export function create<I extends Exact<DeepPartial<PBExplorerItemPurchaseResult_Dismissed>, I>>(
295
+ base?: I,
296
+ ): PBExplorerItemPurchaseResult_Dismissed {
297
+ return PBExplorerItemPurchaseResult_Dismissed.fromPartial(base ?? {});
298
+ }
299
+
300
+ export function fromPartial<I extends Exact<DeepPartial<PBExplorerItemPurchaseResult_Dismissed>, I>>(
301
+ _: I,
302
+ ): PBExplorerItemPurchaseResult_Dismissed {
303
+ const message = createBasePBExplorerItemPurchaseResult_Dismissed();
304
+ return message;
305
+ }
306
+ }
307
+
308
+ function createBasePBExplorerItemPurchaseResult_Failed(): PBExplorerItemPurchaseResult_Failed {
309
+ return {};
310
+ }
311
+
312
+ export namespace PBExplorerItemPurchaseResult_Failed {
313
+ export function encode(_: PBExplorerItemPurchaseResult_Failed, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
314
+ return writer;
315
+ }
316
+
317
+ export function decode(input: _m0.Reader | Uint8Array, length?: number): PBExplorerItemPurchaseResult_Failed {
318
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
319
+ let end = length === undefined ? reader.len : reader.pos + length;
320
+ const message = createBasePBExplorerItemPurchaseResult_Failed();
321
+ while (reader.pos < end) {
322
+ const tag = reader.uint32();
323
+ switch (tag >>> 3) {
324
+ }
325
+ if ((tag & 7) === 4 || tag === 0) {
326
+ break;
327
+ }
328
+ reader.skipType(tag & 7);
329
+ }
330
+ return message;
331
+ }
332
+
333
+ export function fromJSON(_: any): PBExplorerItemPurchaseResult_Failed {
334
+ return {};
335
+ }
336
+
337
+ export function toJSON(_: PBExplorerItemPurchaseResult_Failed): unknown {
338
+ const obj: any = {};
339
+ return obj;
340
+ }
341
+
342
+ export function create<I extends Exact<DeepPartial<PBExplorerItemPurchaseResult_Failed>, I>>(
343
+ base?: I,
344
+ ): PBExplorerItemPurchaseResult_Failed {
345
+ return PBExplorerItemPurchaseResult_Failed.fromPartial(base ?? {});
346
+ }
347
+
348
+ export function fromPartial<I extends Exact<DeepPartial<PBExplorerItemPurchaseResult_Failed>, I>>(
349
+ _: I,
350
+ ): PBExplorerItemPurchaseResult_Failed {
351
+ const message = createBasePBExplorerItemPurchaseResult_Failed();
352
+ return message;
353
+ }
354
+ }
355
+
356
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
357
+
358
+ export type DeepPartial<T> = T extends Builtin ? T
359
+ : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>
360
+ : T extends { $case: string } ? { [K in keyof Omit<T, "$case">]?: DeepPartial<T[K]> } & { $case: T["$case"] }
361
+ : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }
362
+ : Partial<T>;
363
+
364
+ type KeysOfUnion<T> = T extends T ? keyof T : never;
365
+ export type Exact<P, I extends P> = P extends Builtin ? P
366
+ : P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };
367
+
368
+ function isSet(value: any): boolean {
369
+ return value !== null && value !== undefined;
370
+ }
@@ -5,7 +5,7 @@ import { ExplorerUi, explorerUiFromJSON, explorerUiToJSON } from "./common/explo
5
5
  export const protobufPackage = "decentraland.sdk.components";
6
6
 
7
7
  /**
8
- * PBExplorerUiEventsResult transports the lifecycle events of fullscreen explorer panels — a panel was
8
+ * PBExplorerUiEventsResult transports the lifecycle events of explorer UI panels — a panel was
9
9
  * opened, a panel was closed. It is a grow only value set appended to the scene root entity, so every
10
10
  * event of a tick is delivered and none overwrites another.
11
11
  */
@@ -14,22 +14,27 @@ export interface PBExplorerUiEventsResult {
14
14
  ui: ExplorerUi;
15
15
  /** The scene tick when the event occurred */
16
16
  timestamp: number;
17
+ /** The OpenExplorerUiRequest.request_id that caused this event; 0 when the request carried none */
18
+ requestId: number;
17
19
  event?: { $case: "opened"; opened: PBExplorerUiEventsResult_UiOpened } | {
18
20
  $case: "closed";
19
21
  closed: PBExplorerUiEventsResult_UiClosed;
20
22
  } | undefined;
21
23
  }
22
24
 
23
- /** Emitted when a fullscreen explorer panel is opened. */
25
+ /**
26
+ * Emitted when an explorer panel is opened. The OpenExplorerUi response carries the same fact,
27
+ * but it reaches only the caller; this channel is scene wide.
28
+ */
24
29
  export interface PBExplorerUiEventsResult_UiOpened {
25
30
  }
26
31
 
27
- /** Emitted when a fullscreen explorer panel is closed. */
32
+ /** Emitted when an explorer panel is closed. */
28
33
  export interface PBExplorerUiEventsResult_UiClosed {
29
34
  }
30
35
 
31
36
  function createBasePBExplorerUiEventsResult(): PBExplorerUiEventsResult {
32
- return { ui: 0, timestamp: 0, event: undefined };
37
+ return { ui: 0, timestamp: 0, requestId: 0, event: undefined };
33
38
  }
34
39
 
35
40
  export namespace PBExplorerUiEventsResult {
@@ -40,6 +45,9 @@ export namespace PBExplorerUiEventsResult {
40
45
  if (message.timestamp !== 0) {
41
46
  writer.uint32(16).uint32(message.timestamp);
42
47
  }
48
+ if (message.requestId !== 0) {
49
+ writer.uint32(24).uint32(message.requestId);
50
+ }
43
51
  switch (message.event?.$case) {
44
52
  case "opened":
45
53
  PBExplorerUiEventsResult_UiOpened.encode(message.event.opened, writer.uint32(82).fork()).ldelim();
@@ -72,6 +80,13 @@ export namespace PBExplorerUiEventsResult {
72
80
 
73
81
  message.timestamp = reader.uint32();
74
82
  continue;
83
+ case 3:
84
+ if (tag !== 24) {
85
+ break;
86
+ }
87
+
88
+ message.requestId = reader.uint32();
89
+ continue;
75
90
  case 10:
76
91
  if (tag !== 82) {
77
92
  break;
@@ -105,6 +120,7 @@ export namespace PBExplorerUiEventsResult {
105
120
  return {
106
121
  ui: isSet(object.ui) ? explorerUiFromJSON(object.ui) : 0,
107
122
  timestamp: isSet(object.timestamp) ? Number(object.timestamp) : 0,
123
+ requestId: isSet(object.requestId) ? Number(object.requestId) : 0,
108
124
  event: isSet(object.opened)
109
125
  ? { $case: "opened", opened: PBExplorerUiEventsResult_UiOpened.fromJSON(object.opened) }
110
126
  : isSet(object.closed)
@@ -117,6 +133,7 @@ export namespace PBExplorerUiEventsResult {
117
133
  const obj: any = {};
118
134
  message.ui !== undefined && (obj.ui = explorerUiToJSON(message.ui));
119
135
  message.timestamp !== undefined && (obj.timestamp = Math.round(message.timestamp));
136
+ message.requestId !== undefined && (obj.requestId = Math.round(message.requestId));
120
137
  message.event?.$case === "opened" &&
121
138
  (obj.opened = message.event?.opened
122
139
  ? PBExplorerUiEventsResult_UiOpened.toJSON(message.event?.opened)
@@ -140,6 +157,7 @@ export namespace PBExplorerUiEventsResult {
140
157
  const message = createBasePBExplorerUiEventsResult();
141
158
  message.ui = object.ui ?? 0;
142
159
  message.timestamp = object.timestamp ?? 0;
160
+ message.requestId = object.requestId ?? 0;
143
161
  if (object.event?.$case === "opened" && object.event?.opened !== undefined && object.event?.opened !== null) {
144
162
  message.event = { $case: "opened", opened: PBExplorerUiEventsResult_UiOpened.fromPartial(object.event.opened) };
145
163
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dcl/protocol",
3
- "version": "1.0.0-34381335718.commit-3c838bb",
3
+ "version": "1.0.0-34643020503.commit-6402953",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,7 +17,7 @@
17
17
  "gen:test": "node protoc-gen-bitwise/test/generator.test.js"
18
18
  },
19
19
  "devDependencies": {
20
- "@protobuf-ts/protoc": "^2.11.0",
20
+ "@protobuf-ts/protoc": "^2.8.1",
21
21
  "proto-compatibility-tool": "^1.1.2-20220925163655.commit-25bd040",
22
22
  "typescript": "^5.0.4"
23
23
  },
@@ -36,5 +36,5 @@
36
36
  "protoc-gen-bitwise/*.js",
37
37
  "protoc-gen-bitwise/runtime"
38
38
  ],
39
- "commit": "3c838bb8a42d470868104bb2b1c324842bb496ac"
39
+ "commit": "64029534ec86dffe2fe913723f930c86bb0d6c01"
40
40
  }
@@ -75,7 +75,7 @@ message StopEmoteRequest { }
75
75
  enum OpenExplorerUiResult {
76
76
  UNSPECIFIED = 0;
77
77
  OPENED = 1;
78
- WAS_ALREADY_OPEN = 2; // a fullscreen panel is already open
78
+ WAS_ALREADY_OPEN = 2; // the slot the requested panel occupies is already in use; panels sharing a slot exclude each other
79
79
  REJECTED_NOT_CURRENT_SCENE = 3; // the standard restricted-actions current-scene gate rejected the call
80
80
  REJECTED_FEATURE_DISABLED = 4; // the requested section is hidden by feature flags or client doesn't have that feature
81
81
  REJECTED_NO_USER_GESTURE = 5; // rejected: the call did not originate from a user gesture
@@ -83,11 +83,17 @@ enum OpenExplorerUiResult {
83
83
 
84
84
  message OpenExplorerUiRequest {
85
85
  decentraland.sdk.components.common.ExplorerUi ui = 1;
86
+ // Echoed back in the events this request produces, so they can be matched to their call.
87
+ // Unset means no correlation, and 0 is reserved for the same meaning on the result, so ids start at 1.
88
+ optional uint32 request_id = 2;
86
89
 
87
- // Extension point for future per-panel parameters, as a oneof so each panel gets its
88
- // own optional param message without touching existing fields.
89
- // message MapParams { int32 focus_x = 1; int32 focus_y = 2; }
90
- // oneof params { MapParams map = 10; }
90
+ message ItemPurchaseParams {
91
+ string urn = 1;
92
+ }
93
+
94
+ oneof params {
95
+ ItemPurchaseParams item_purchase = 10;
96
+ }
91
97
  }
92
98
 
93
99
  message OpenExplorerUiResponse {
@@ -130,6 +136,6 @@ service RestrictedActionsService {
130
136
  // StopEmote will stop the current emote
131
137
  rpc StopEmote(StopEmoteRequest) returns (SuccessResponse) {}
132
138
 
133
- // OpenExplorerUi opens a specific fullscreen explorer panel and returns the open verdict.
139
+ // OpenExplorerUi opens an explorer panel, fullscreen or modal, and returns the open verdict.
134
140
  rpc OpenExplorerUi(OpenExplorerUiRequest) returns (OpenExplorerUiResponse) {}
135
141
  }
@@ -94,14 +94,6 @@ message PlayerEmote {
94
94
  uint32 incremental_id = 1;
95
95
  string urn = 2;
96
96
  float timestamp = 3;
97
- optional bool is_stopping = 4; // true means the emote has been stopped in the sender's client
98
- optional bool is_repeating = 5; // true when it is not the first time the looping animation plays
99
- optional int32 interaction_id = 6; // identifies an interaction univocaly, established when the start animation is triggered
100
- optional int32 social_emote_outcome = 7; // -1 means it does not use an outcome animation
101
- optional bool is_reacting = 8; // to a social emote started by other user
102
- optional string social_emote_initiator = 9; // wallet address of the user that initiated social emote
103
- optional string target_avatar = 10; // wallet address of the user whose avatar is the target of a directed emote
104
- optional uint32 mask = 11; // mask for which bones an animation applies to.
105
97
  }
106
98
 
107
99
  message SceneEmote {
@@ -134,9 +126,6 @@ message ProfileResponse {
134
126
  message Chat {
135
127
  string message = 1;
136
128
  double timestamp = 2;
137
- // Extension: optional forwarded_from to identify the original sender when
138
- // messages are forwarded through an SFU
139
- optional string forwarded_from = 3;
140
129
  }
141
130
 
142
131
  message Scene {
@@ -42,8 +42,3 @@ message PBAvatarShape {
42
42
  optional bool show_only_wearables = 12; // hides the skin + hair + facial features (default: false)
43
43
  }
44
44
 
45
- // Mask for which bones an animation applies to.
46
- enum AvatarEmoteMask {
47
- AEM_FULL_BODY = 0;
48
- AEM_UPPER_BODY = 1;
49
- }
@@ -1,7 +1,7 @@
1
1
  syntax = "proto3";
2
2
  package decentraland.sdk.components.common;
3
3
 
4
- // Identifies which fullscreen explorer panel OpenExplorerUi targets.
4
+ // Identifies which explorer panel OpenExplorerUi targets. Panels are not all fullscreen.
5
5
  // EU_SETTINGS holds 0 so an unset `ui` field defaults to the least-intrusive panel.
6
6
  enum ExplorerUi {
7
7
  EU_SETTINGS = 0;
@@ -11,4 +11,5 @@ enum ExplorerUi {
11
11
  EU_COMMUNITIES = 4;
12
12
  EU_PLACES = 5;
13
13
  EU_EVENTS = 6;
14
+ EU_ITEM_PURCHASE = 7; // the item-purchase confirmation modal; see OpenExplorerUi for its parameters and result component
14
15
  }
@@ -0,0 +1,24 @@
1
+ syntax = "proto3";
2
+ package decentraland.sdk.components;
3
+
4
+ import "decentraland/sdk/components/common/id.proto";
5
+
6
+ option (common.ecs_component_id) = 1222;
7
+
8
+ // Grow-only value set appended to the scene root entity.
9
+ // Reports the outcome of an EU_ITEM_PURCHASE flow triggered via OpenExplorerUi.
10
+ message PBExplorerItemPurchaseResult {
11
+ message Purchased {}
12
+ message Dismissed {}
13
+ message Failed {}
14
+
15
+ string urn = 1;
16
+ uint32 timestamp = 2; // The scene tick when the event occurred
17
+ uint32 request_id = 3; // The OpenExplorerUiRequest.request_id that caused this event; 0 when the request carried none
18
+
19
+ oneof status {
20
+ Purchased purchased = 10;
21
+ Dismissed dismissed = 11;
22
+ Failed failed = 12;
23
+ }
24
+ }
@@ -6,18 +6,20 @@ import "decentraland/sdk/components/common/explorer_ui.proto";
6
6
 
7
7
  option (common.ecs_component_id) = 1220;
8
8
 
9
- // PBExplorerUiEventsResult transports the lifecycle events of fullscreen explorer panels — a panel was
9
+ // PBExplorerUiEventsResult transports the lifecycle events of explorer UI panels — a panel was
10
10
  // opened, a panel was closed. It is a grow only value set appended to the scene root entity, so every
11
11
  // event of a tick is delivered and none overwrites another.
12
12
  message PBExplorerUiEventsResult {
13
- // Emitted when a fullscreen explorer panel is opened.
13
+ // Emitted when an explorer panel is opened. The OpenExplorerUi response carries the same fact,
14
+ // but it reaches only the caller; this channel is scene wide.
14
15
  message UiOpened {}
15
16
 
16
- // Emitted when a fullscreen explorer panel is closed.
17
+ // Emitted when an explorer panel is closed.
17
18
  message UiClosed {}
18
19
 
19
20
  decentraland.sdk.components.common.ExplorerUi ui = 1; // The panel that the event refers to
20
21
  uint32 timestamp = 2; // The scene tick when the event occurred
22
+ uint32 request_id = 3; // The OpenExplorerUiRequest.request_id that caused this event; 0 when the request carried none
21
23
 
22
24
  // Extension point, deliberately narrow: a variant belongs here only if it is meaningful for every
23
25
  // value of `ui`, because `ui` and `event` are independent axes and every combination of the two is
@@ -25,4 +25,4 @@ message PBLightSource {
25
25
  optional float inner_angle = 9; // default = 21.8. Inner angle can't be higher than outer angle, otherwise will default to same value. Min value is 0. Max value is 179.
26
26
  optional float outer_angle = 10; // default = 30. Outer angle can't be lower than inner angle, otherwise will inner angle will be set to same value. Max value is 179.
27
27
  }
28
- }
28
+ }
@@ -15,6 +15,7 @@ import public "decentraland/sdk/components/billboard.proto";
15
15
  import public "decentraland/sdk/components/camera_mode_area.proto";
16
16
  import public "decentraland/sdk/components/camera_mode.proto";
17
17
  import public "decentraland/sdk/components/engine_info.proto";
18
+ import public "decentraland/sdk/components/explorer_item_purchase_result.proto";
18
19
  import public "decentraland/sdk/components/explorer_ui_events_result.proto";
19
20
  import public "decentraland/sdk/components/gltf_container.proto";
20
21
  import public "decentraland/sdk/components/gltf_node_modifiers.proto";