@layer-drone/protocol 0.0.11 → 0.0.13

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.
@@ -40,6 +40,14 @@ import type {
40
40
  FlightsControllerValidateFlightResponses,
41
41
  KeysControllerGetProvenanceCryptoKeyData,
42
42
  KeysControllerGetProvenanceCryptoKeyResponses,
43
+ MissionsControllerClaimRewardsData,
44
+ MissionsControllerClaimRewardsErrors,
45
+ MissionsControllerClaimRewardsResponses,
46
+ MissionsControllerCreateMissionsData,
47
+ MissionsControllerCreateMissionsErrors,
48
+ MissionsControllerCreateMissionsResponses,
49
+ MissionsControllerUpdateMissionsData,
50
+ MissionsControllerUpdateMissionsResponses,
43
51
  QuotesControllerCreateQuoteData,
44
52
  QuotesControllerCreateQuoteErrors,
45
53
  QuotesControllerCreateQuoteResponses,
@@ -312,6 +320,75 @@ export const quotesControllerGetQuote = <ThrowOnError extends boolean = false>(
312
320
  });
313
321
  };
314
322
 
323
+ /**
324
+ * Create new missions
325
+ * Create missions for specified zones and mission types.
326
+ */
327
+ export const missionsControllerCreateMissions = <
328
+ ThrowOnError extends boolean = false,
329
+ >(
330
+ options: Options<MissionsControllerCreateMissionsData, ThrowOnError>,
331
+ ) => {
332
+ return (options.client ?? _heyApiClient).post<
333
+ MissionsControllerCreateMissionsResponses,
334
+ MissionsControllerCreateMissionsErrors,
335
+ ThrowOnError
336
+ >({
337
+ url: "/missions",
338
+ ...options,
339
+ headers: {
340
+ "Content-Type": "application/json",
341
+ ...options.headers,
342
+ },
343
+ });
344
+ };
345
+
346
+ /**
347
+ * Update missions
348
+ * Update missions' rewards or cancel them altogether
349
+ */
350
+ export const missionsControllerUpdateMissions = <
351
+ ThrowOnError extends boolean = false,
352
+ >(
353
+ options: Options<MissionsControllerUpdateMissionsData, ThrowOnError>,
354
+ ) => {
355
+ return (options.client ?? _heyApiClient).put<
356
+ MissionsControllerUpdateMissionsResponses,
357
+ unknown,
358
+ ThrowOnError
359
+ >({
360
+ url: "/missions",
361
+ ...options,
362
+ headers: {
363
+ "Content-Type": "application/json",
364
+ ...options.headers,
365
+ },
366
+ });
367
+ };
368
+
369
+ /**
370
+ * Claim rewards for a mission
371
+ * Claim rewards for a completed flight within a mission
372
+ */
373
+ export const missionsControllerClaimRewards = <
374
+ ThrowOnError extends boolean = false,
375
+ >(
376
+ options: Options<MissionsControllerClaimRewardsData, ThrowOnError>,
377
+ ) => {
378
+ return (options.client ?? _heyApiClient).post<
379
+ MissionsControllerClaimRewardsResponses,
380
+ MissionsControllerClaimRewardsErrors,
381
+ ThrowOnError
382
+ >({
383
+ url: "/missions/{id}/rewards",
384
+ ...options,
385
+ headers: {
386
+ "Content-Type": "application/json",
387
+ ...options.headers,
388
+ },
389
+ });
390
+ };
391
+
315
392
  export const flightsControllerGenerateFlightId = <
316
393
  ThrowOnError extends boolean = false,
317
394
  >(
@@ -87,6 +87,72 @@ export type CreateQuoteRequestDto = {
87
87
  mintOnChain: boolean;
88
88
  };
89
89
 
90
+ export type CreateMissionRequestDto = {
91
+ missions: Array<{
92
+ zoneId: string;
93
+ flightPlanId: number;
94
+ amount: number;
95
+ startTime: Date;
96
+ endTime: Date;
97
+ }>;
98
+ campaignId: number;
99
+ requestor: string;
100
+ mintOnChain?: boolean;
101
+ };
102
+
103
+ export type CreateMissionResponseDto = {
104
+ success: boolean;
105
+ data:
106
+ | {
107
+ missions: Array<{
108
+ missionId: string;
109
+ vaultId: string;
110
+ amount: number;
111
+ zoneId: string;
112
+ flightPlanId: number;
113
+ captureStartTime: Date;
114
+ captureEndTime: Date;
115
+ requestor: string;
116
+ }>;
117
+ totalAmount: number;
118
+ }
119
+ | string;
120
+ };
121
+
122
+ export type UpdateMissionsRequestDto = {
123
+ missions: Array<
124
+ | {
125
+ id: string;
126
+ amount: number;
127
+ }
128
+ | {
129
+ id: string;
130
+ isOpen: false;
131
+ }
132
+ >;
133
+ };
134
+
135
+ export type UpdateMissionsResponseDto = {
136
+ success: boolean;
137
+ data: {
138
+ rewardUpdatesQueued: Array<string>;
139
+ cancelUpdatesQueued: Array<string>;
140
+ };
141
+ };
142
+
143
+ export type ClaimRewardsRequestDto = {
144
+ flightIds: Array<number>;
145
+ };
146
+
147
+ export type ClaimRewardsResponseDto = {
148
+ success: boolean;
149
+ data:
150
+ | {
151
+ cancelUpdatesQueued: Array<string>;
152
+ }
153
+ | string;
154
+ };
155
+
90
156
  export type FlightDto = {
91
157
  token_id: number;
92
158
  owner: string;
@@ -114,11 +180,6 @@ export type ValidateFlightDto = {
114
180
  pilotAddress: string;
115
181
  missionId: number;
116
182
  flightTimestamp: string;
117
- externalBucketInfo?: {
118
- prefix: string;
119
- bucketName: string;
120
- region: string;
121
- };
122
183
  flightRequestInfo: {
123
184
  filePaths: Array<string>;
124
185
  flightPlanId: number;
@@ -149,7 +210,14 @@ export type GetTimeLimitsForSunAltitudeResponse = {
149
210
  export type CreateWebhookBody = {
150
211
  name: string;
151
212
  url: string;
152
- event_types: Array<"test" | "protocol.flight.submitted" | "*">;
213
+ event_types: Array<
214
+ | "test"
215
+ | "protocol.flight.submitted"
216
+ | "protocol.mission.created"
217
+ | "protocol.mission.updated"
218
+ | "protocol.flight.reviewed"
219
+ | "*"
220
+ >;
153
221
  active: boolean;
154
222
  };
155
223
 
@@ -162,7 +230,14 @@ export type GetWebhooksResponse = Array<{
162
230
  id: number;
163
231
  name: string;
164
232
  url: string;
165
- event_types: Array<"test" | "protocol.flight.submitted" | "*">;
233
+ event_types: Array<
234
+ | "test"
235
+ | "protocol.flight.submitted"
236
+ | "protocol.mission.created"
237
+ | "protocol.mission.updated"
238
+ | "protocol.flight.reviewed"
239
+ | "*"
240
+ >;
166
241
  active: boolean;
167
242
  failure_count: number;
168
243
  last_failure_reason: string;
@@ -174,7 +249,14 @@ export type GetWebhookResponse = {
174
249
  id: number;
175
250
  name: string;
176
251
  url: string;
177
- event_types: Array<"test" | "protocol.flight.submitted" | "*">;
252
+ event_types: Array<
253
+ | "test"
254
+ | "protocol.flight.submitted"
255
+ | "protocol.mission.created"
256
+ | "protocol.mission.updated"
257
+ | "protocol.flight.reviewed"
258
+ | "*"
259
+ >;
178
260
  active: boolean;
179
261
  failure_count: number;
180
262
  last_failure_reason: string;
@@ -185,7 +267,14 @@ export type GetWebhookResponse = {
185
267
  export type UpdateWebhookBody = {
186
268
  name?: string;
187
269
  url?: string;
188
- event_types?: Array<"test" | "protocol.flight.submitted" | "*">;
270
+ event_types?: Array<
271
+ | "test"
272
+ | "protocol.flight.submitted"
273
+ | "protocol.mission.created"
274
+ | "protocol.mission.updated"
275
+ | "protocol.flight.reviewed"
276
+ | "*"
277
+ >;
189
278
  active?: boolean;
190
279
  };
191
280
 
@@ -193,7 +282,14 @@ export type UpdateWebhookResponse = {
193
282
  id: number;
194
283
  name: string;
195
284
  url: string;
196
- event_types: Array<"test" | "protocol.flight.submitted" | "*">;
285
+ event_types: Array<
286
+ | "test"
287
+ | "protocol.flight.submitted"
288
+ | "protocol.mission.created"
289
+ | "protocol.mission.updated"
290
+ | "protocol.flight.reviewed"
291
+ | "*"
292
+ >;
197
293
  active: boolean;
198
294
  failure_count: number;
199
295
  last_failure_reason: string;
@@ -392,6 +488,89 @@ export type QuotesControllerGetQuoteResponses = {
392
488
  200: unknown;
393
489
  };
394
490
 
491
+ export type MissionsControllerCreateMissionsData = {
492
+ body: CreateMissionRequestDto;
493
+ path?: never;
494
+ query?: never;
495
+ url: "/missions";
496
+ };
497
+
498
+ export type MissionsControllerCreateMissionsErrors = {
499
+ /**
500
+ * Validation failed - invalid Zones, mission types, or times
501
+ */
502
+ 400: unknown;
503
+ /**
504
+ * Insufficient treasury spending limit
505
+ */
506
+ 403: unknown;
507
+ /**
508
+ * Internal server error during mission creation
509
+ */
510
+ 500: unknown;
511
+ };
512
+
513
+ export type MissionsControllerCreateMissionsResponses = {
514
+ /**
515
+ * Mission creation transaction queued successfully
516
+ */
517
+ 201: CreateMissionResponseDto;
518
+ };
519
+
520
+ export type MissionsControllerCreateMissionsResponse =
521
+ MissionsControllerCreateMissionsResponses[keyof MissionsControllerCreateMissionsResponses];
522
+
523
+ export type MissionsControllerUpdateMissionsData = {
524
+ body: UpdateMissionsRequestDto;
525
+ path?: never;
526
+ query?: never;
527
+ url: "/missions";
528
+ };
529
+
530
+ export type MissionsControllerUpdateMissionsResponses = {
531
+ /**
532
+ * Missions update transaction queued successfully
533
+ */
534
+ 200: UpdateMissionsResponseDto;
535
+ };
536
+
537
+ export type MissionsControllerUpdateMissionsResponse =
538
+ MissionsControllerUpdateMissionsResponses[keyof MissionsControllerUpdateMissionsResponses];
539
+
540
+ export type MissionsControllerClaimRewardsData = {
541
+ body: ClaimRewardsRequestDto;
542
+ path: {
543
+ id: bigint;
544
+ };
545
+ query?: never;
546
+ url: "/missions/{id}/rewards";
547
+ };
548
+
549
+ export type MissionsControllerClaimRewardsErrors = {
550
+ /**
551
+ * Flight not approved or validation failed
552
+ */
553
+ 400: unknown;
554
+ /**
555
+ * Mission or Flight not found
556
+ */
557
+ 404: unknown;
558
+ /**
559
+ * Internal server error during reward claiming
560
+ */
561
+ 500: unknown;
562
+ };
563
+
564
+ export type MissionsControllerClaimRewardsResponses = {
565
+ /**
566
+ * Rewards claimed successfully
567
+ */
568
+ 200: ClaimRewardsResponseDto;
569
+ };
570
+
571
+ export type MissionsControllerClaimRewardsResponse =
572
+ MissionsControllerClaimRewardsResponses[keyof MissionsControllerClaimRewardsResponses];
573
+
395
574
  export type FlightsControllerGenerateFlightIdData = {
396
575
  body?: never;
397
576
  path?: never;
@@ -24,5 +24,72 @@ export const Event = z.union([
24
24
  .strict(),
25
25
  })
26
26
  .strict(),
27
+ z
28
+ .object({
29
+ id: z.any(),
30
+ event_type: z.literal("protocol.mission.created"),
31
+ timestamp: z.any(),
32
+ data: z
33
+ .object({
34
+ missionId: z.string(),
35
+ vaultId: z.string(),
36
+ amount: z.string(),
37
+ zoneId: z.string(),
38
+ flightPlanId: z.number(),
39
+ captureStartTime: z.string(),
40
+ captureEndTime: z.string(),
41
+ detailsHash: z.string(),
42
+ })
43
+ .strict(),
44
+ })
45
+ .strict(),
46
+ z
47
+ .object({
48
+ id: z.any(),
49
+ event_type: z.literal("protocol.mission.updated"),
50
+ timestamp: z.any(),
51
+ data: z
52
+ .object({
53
+ id: z.string(),
54
+ amount: z.number().optional(),
55
+ isOpen: z.boolean().optional(),
56
+ })
57
+ .strict(),
58
+ })
59
+ .strict(),
60
+ z
61
+ .object({
62
+ id: z.any(),
63
+ event_type: z.literal("protocol.flight.reviewed"),
64
+ timestamp: z.any(),
65
+ data: z
66
+ .object({
67
+ flightId: z.number(),
68
+ isApproved: z.boolean(),
69
+ validationLogUri: z.string(),
70
+ validator: z.string(),
71
+ filesHash: z.string(),
72
+ })
73
+ .strict(),
74
+ })
75
+ .strict(),
27
76
  ]);
28
77
  export type Event = z.infer<typeof Event>;
78
+
79
+ export type TestEvent = Extract<Event, { event_type: "test" }>;
80
+ export type FlightSubmittedEvent = Extract<
81
+ Event,
82
+ { event_type: "protocol.flight.submitted" }
83
+ >;
84
+ export type MissionCreatedEvent = Extract<
85
+ Event,
86
+ { event_type: "protocol.mission.created" }
87
+ >;
88
+ export type MissionUpdatedEvent = Extract<
89
+ Event,
90
+ { event_type: "protocol.mission.updated" }
91
+ >;
92
+ export type FlightReviewedEvent = Extract<
93
+ Event,
94
+ { event_type: "protocol.flight.reviewed" }
95
+ >;