@chainlink/cre-sdk 1.16.0 → 1.17.0-alpha.1

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 (81) hide show
  1. package/README.md +2 -62
  2. package/dist/generated/capabilities/blockchain/aptos/v1alpha/client_pb.d.ts +1035 -0
  3. package/dist/generated/capabilities/blockchain/aptos/v1alpha/client_pb.js +290 -0
  4. package/dist/generated/capabilities/blockchain/solana/v1alpha/client_pb.d.ts +2885 -15
  5. package/dist/generated/capabilities/blockchain/solana/v1alpha/client_pb.js +459 -7
  6. package/dist/generated/capabilities/networking/http/v1alpha/client_pb.js +1 -1
  7. package/dist/generated/sdk/v1alpha/sdk_pb.d.ts +505 -0
  8. package/dist/generated/sdk/v1alpha/sdk_pb.js +121 -15
  9. package/dist/generated/tools/generator/v1alpha/cre_metadata_pb.d.ts +30 -1
  10. package/dist/generated/tools/generator/v1alpha/cre_metadata_pb.js +20 -2
  11. package/dist/generated/workflows/v2/cre_info_pb.d.ts +123 -0
  12. package/dist/generated/workflows/v2/cre_info_pb.js +17 -0
  13. package/dist/generated/workflows/v2/workflow_key_pb.d.ts +55 -0
  14. package/dist/generated/workflows/v2/workflow_key_pb.js +17 -0
  15. package/dist/generated/workflows/v2/workflow_user_metric_pb.d.ts +118 -0
  16. package/dist/generated/workflows/v2/workflow_user_metric_pb.js +41 -0
  17. package/dist/generated-sdk/capabilities/blockchain/aptos/v1alpha/client_sdk_gen.d.ts +63 -0
  18. package/dist/generated-sdk/capabilities/blockchain/aptos/v1alpha/client_sdk_gen.js +247 -0
  19. package/dist/generated-sdk/capabilities/blockchain/evm/v1alpha/client_sdk_gen.d.ts +13 -0
  20. package/dist/generated-sdk/capabilities/blockchain/evm/v1alpha/client_sdk_gen.js +94 -0
  21. package/dist/generated-sdk/capabilities/blockchain/solana/v1alpha/client_sdk_gen.d.ts +69 -2
  22. package/dist/generated-sdk/capabilities/blockchain/solana/v1alpha/client_sdk_gen.js +403 -1
  23. package/dist/generated-sdk/capabilities/internal/consensus/v1alpha/consensus_sdk_gen.d.ts +5 -1
  24. package/dist/generated-sdk/capabilities/internal/consensus/v1alpha/consensus_sdk_gen.js +22 -0
  25. package/dist/generated-sdk/capabilities/networking/confidentialhttp/v1alpha/client_sdk_gen.d.ts +4 -0
  26. package/dist/generated-sdk/capabilities/networking/confidentialhttp/v1alpha/client_sdk_gen.js +12 -0
  27. package/dist/generated-sdk/capabilities/networking/http/v1alpha/client_sdk_gen.d.ts +11 -1
  28. package/dist/generated-sdk/capabilities/networking/http/v1alpha/client_sdk_gen.js +12 -0
  29. package/dist/generated-sdk/capabilities/networking/http/v1alpha/http_sdk_gen.d.ts +2 -0
  30. package/dist/generated-sdk/capabilities/networking/http/v1alpha/http_sdk_gen.js +2 -0
  31. package/dist/generated-sdk/capabilities/scheduler/cron/v1/cron_sdk_gen.d.ts +2 -0
  32. package/dist/generated-sdk/capabilities/scheduler/cron/v1/cron_sdk_gen.js +2 -0
  33. package/dist/sdk/cre/index.d.ts +30 -15
  34. package/dist/sdk/cre/index.js +29 -14
  35. package/dist/sdk/impl/runtime-impl.d.ts +28 -1
  36. package/dist/sdk/impl/runtime-impl.js +52 -1
  37. package/dist/sdk/runtime.d.ts +23 -1
  38. package/dist/sdk/tee-constraints.d.ts +68 -0
  39. package/dist/sdk/tee-constraints.js +59 -0
  40. package/dist/sdk/test/evm-contract-mock.js +58 -60
  41. package/dist/sdk/test/generated/capabilities/blockchain/aptos/v1alpha/aptos_mock_gen.d.ts +25 -0
  42. package/dist/sdk/test/generated/capabilities/blockchain/aptos/v1alpha/aptos_mock_gen.js +111 -0
  43. package/dist/sdk/test/generated/capabilities/blockchain/solana/v1alpha/solana_mock_gen.d.ts +19 -1
  44. package/dist/sdk/test/generated/capabilities/blockchain/solana/v1alpha/solana_mock_gen.js +141 -1
  45. package/dist/sdk/test/generated/index.d.ts +1 -0
  46. package/dist/sdk/test/generated/index.js +1 -0
  47. package/dist/sdk/test/index.d.ts +0 -1
  48. package/dist/sdk/test/index.js +0 -1
  49. package/dist/sdk/testutils/index.d.ts +1 -1
  50. package/dist/sdk/testutils/index.js +1 -1
  51. package/dist/sdk/testutils/test-runtime.d.ts +17 -4
  52. package/dist/sdk/testutils/test-runtime.js +31 -5
  53. package/dist/sdk/testutils/test-writer.d.ts +7 -1
  54. package/dist/sdk/testutils/test-writer.js +13 -1
  55. package/dist/sdk/types/global.d.ts +8 -0
  56. package/dist/sdk/utils/capabilities/blockchain/{evm/evm-helpers.d.ts → blockchain-helpers.d.ts} +6 -7
  57. package/dist/sdk/utils/capabilities/blockchain/{evm/evm-helpers.js → blockchain-helpers.js} +8 -6
  58. package/dist/sdk/utils/hex-utils.d.ts +0 -6
  59. package/dist/sdk/utils/hex-utils.js +0 -8
  60. package/dist/sdk/utils/index.d.ts +1 -3
  61. package/dist/sdk/utils/index.js +1 -2
  62. package/dist/sdk/wasm/host-bindings.d.ts +4 -0
  63. package/dist/sdk/wasm/host-bindings.js +4 -0
  64. package/dist/sdk/wasm/runner.d.ts +10 -4
  65. package/dist/sdk/wasm/runner.js +86 -13
  66. package/dist/sdk/wasm/runtime.d.ts +4 -1
  67. package/dist/sdk/wasm/runtime.js +9 -1
  68. package/dist/sdk/workflow.d.ts +16 -7
  69. package/dist/sdk/workflow.js +10 -2
  70. package/dist/workflows/standard_tests/restrictions/test.ts +41 -0
  71. package/dist/workflows/standard_tests/tee_runtime/test.ts +29 -0
  72. package/package.json +3 -6
  73. package/scripts/src/generate-sdks.ts +6 -0
  74. package/dist/sdk/test/contract-mock-core.d.ts +0 -16
  75. package/dist/sdk/test/contract-mock-core.js +0 -21
  76. package/dist/sdk/test/solana-contract-mock.d.ts +0 -54
  77. package/dist/sdk/test/solana-contract-mock.js +0 -63
  78. package/dist/sdk/utils/capabilities/blockchain/report-helpers.d.ts +0 -19
  79. package/dist/sdk/utils/capabilities/blockchain/report-helpers.js +0 -16
  80. package/dist/sdk/utils/capabilities/blockchain/solana/solana-helpers.d.ts +0 -101
  81. package/dist/sdk/utils/capabilities/blockchain/solana/solana-helpers.js +0 -100
@@ -1,5 +1,6 @@
1
1
  import { create, fromJson } from '@bufbuild/protobuf';
2
- import { AccountMetaSchema, ComputeConfigSchema, WriteReportReplySchema, WriteReportRequestSchema, } from '../../../../../generated/capabilities/blockchain/solana/v1alpha/client_pb';
2
+ import { AnySchema, anyPack } from '@bufbuild/protobuf/wkt';
3
+ import { AccountMetaSchema, ComputeConfigSchema, FilterLogTriggerRequestSchema, GetAccountInfoWithOptsReplySchema, GetAccountInfoWithOptsRequestSchema, GetBalanceReplySchema, GetBalanceRequestSchema, GetBlockReplySchema, GetBlockRequestSchema, GetFeeForMessageReplySchema, GetFeeForMessageRequestSchema, GetMultipleAccountsWithOptsReplySchema, GetMultipleAccountsWithOptsRequestSchema, GetProgramAccountsReplySchema, GetProgramAccountsRequestSchema, GetSignatureStatusesReplySchema, GetSignatureStatusesRequestSchema, GetSlotHeightReplySchema, GetSlotHeightRequestSchema, GetTransactionReplySchema, GetTransactionRequestSchema, LogSchema, WriteReportReplySchema, WriteReportRequestSchema, } from '../../../../../generated/capabilities/blockchain/solana/v1alpha/client_pb';
3
4
  import { ReportResponseSchema, } from '../../../../../generated/sdk/v1alpha/sdk_pb';
4
5
  import { Report } from '../../../../../sdk/report';
5
6
  import { hexToBytes } from '../../../../../sdk/utils/hex-utils';
@@ -52,6 +53,254 @@ export class ClientCapability {
52
53
  constructor(ChainSelector) {
53
54
  this.ChainSelector = ChainSelector;
54
55
  }
56
+ getAccountInfoWithOpts(runtime, input) {
57
+ // Handle input conversion - unwrap if it's a wrapped type, convert from JSON if needed
58
+ let payload;
59
+ if (input.$typeName) {
60
+ // It's the original protobuf type
61
+ payload = input;
62
+ }
63
+ else {
64
+ // It's regular JSON, convert using fromJson
65
+ payload = fromJson(GetAccountInfoWithOptsRequestSchema, input);
66
+ }
67
+ // Include all labels in capability ID for routing when specified
68
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
69
+ const capabilityResponse = runtime.callCapability({
70
+ capabilityId,
71
+ method: 'GetAccountInfoWithOpts',
72
+ payload,
73
+ inputSchema: GetAccountInfoWithOptsRequestSchema,
74
+ outputSchema: GetAccountInfoWithOptsReplySchema,
75
+ });
76
+ return {
77
+ result: () => {
78
+ const result = capabilityResponse.result();
79
+ return result;
80
+ },
81
+ };
82
+ }
83
+ getBalance(runtime, input) {
84
+ // Handle input conversion - unwrap if it's a wrapped type, convert from JSON if needed
85
+ let payload;
86
+ if (input.$typeName) {
87
+ // It's the original protobuf type
88
+ payload = input;
89
+ }
90
+ else {
91
+ // It's regular JSON, convert using fromJson
92
+ payload = fromJson(GetBalanceRequestSchema, input);
93
+ }
94
+ // Include all labels in capability ID for routing when specified
95
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
96
+ const capabilityResponse = runtime.callCapability({
97
+ capabilityId,
98
+ method: 'GetBalance',
99
+ payload,
100
+ inputSchema: GetBalanceRequestSchema,
101
+ outputSchema: GetBalanceReplySchema,
102
+ });
103
+ return {
104
+ result: () => {
105
+ const result = capabilityResponse.result();
106
+ return result;
107
+ },
108
+ };
109
+ }
110
+ getBlock(runtime, input) {
111
+ // Handle input conversion - unwrap if it's a wrapped type, convert from JSON if needed
112
+ let payload;
113
+ if (input.$typeName) {
114
+ // It's the original protobuf type
115
+ payload = input;
116
+ }
117
+ else {
118
+ // It's regular JSON, convert using fromJson
119
+ payload = fromJson(GetBlockRequestSchema, input);
120
+ }
121
+ // Include all labels in capability ID for routing when specified
122
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
123
+ const capabilityResponse = runtime.callCapability({
124
+ capabilityId,
125
+ method: 'GetBlock',
126
+ payload,
127
+ inputSchema: GetBlockRequestSchema,
128
+ outputSchema: GetBlockReplySchema,
129
+ });
130
+ return {
131
+ result: () => {
132
+ const result = capabilityResponse.result();
133
+ return result;
134
+ },
135
+ };
136
+ }
137
+ getFeeForMessage(runtime, input) {
138
+ // Handle input conversion - unwrap if it's a wrapped type, convert from JSON if needed
139
+ let payload;
140
+ if (input.$typeName) {
141
+ // It's the original protobuf type
142
+ payload = input;
143
+ }
144
+ else {
145
+ // It's regular JSON, convert using fromJson
146
+ payload = fromJson(GetFeeForMessageRequestSchema, input);
147
+ }
148
+ // Include all labels in capability ID for routing when specified
149
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
150
+ const capabilityResponse = runtime.callCapability({
151
+ capabilityId,
152
+ method: 'GetFeeForMessage',
153
+ payload,
154
+ inputSchema: GetFeeForMessageRequestSchema,
155
+ outputSchema: GetFeeForMessageReplySchema,
156
+ });
157
+ return {
158
+ result: () => {
159
+ const result = capabilityResponse.result();
160
+ return result;
161
+ },
162
+ };
163
+ }
164
+ getMultipleAccountsWithOpts(runtime, input) {
165
+ // Handle input conversion - unwrap if it's a wrapped type, convert from JSON if needed
166
+ let payload;
167
+ if (input.$typeName) {
168
+ // It's the original protobuf type
169
+ payload = input;
170
+ }
171
+ else {
172
+ // It's regular JSON, convert using fromJson
173
+ payload = fromJson(GetMultipleAccountsWithOptsRequestSchema, input);
174
+ }
175
+ // Include all labels in capability ID for routing when specified
176
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
177
+ const capabilityResponse = runtime.callCapability({
178
+ capabilityId,
179
+ method: 'GetMultipleAccountsWithOpts',
180
+ payload,
181
+ inputSchema: GetMultipleAccountsWithOptsRequestSchema,
182
+ outputSchema: GetMultipleAccountsWithOptsReplySchema,
183
+ });
184
+ return {
185
+ result: () => {
186
+ const result = capabilityResponse.result();
187
+ return result;
188
+ },
189
+ };
190
+ }
191
+ getProgramAccounts(runtime, input) {
192
+ // Handle input conversion - unwrap if it's a wrapped type, convert from JSON if needed
193
+ let payload;
194
+ if (input.$typeName) {
195
+ // It's the original protobuf type
196
+ payload = input;
197
+ }
198
+ else {
199
+ // It's regular JSON, convert using fromJson
200
+ payload = fromJson(GetProgramAccountsRequestSchema, input);
201
+ }
202
+ // Include all labels in capability ID for routing when specified
203
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
204
+ const capabilityResponse = runtime.callCapability({
205
+ capabilityId,
206
+ method: 'GetProgramAccounts',
207
+ payload,
208
+ inputSchema: GetProgramAccountsRequestSchema,
209
+ outputSchema: GetProgramAccountsReplySchema,
210
+ });
211
+ return {
212
+ result: () => {
213
+ const result = capabilityResponse.result();
214
+ return result;
215
+ },
216
+ };
217
+ }
218
+ getSignatureStatuses(runtime, input) {
219
+ // Handle input conversion - unwrap if it's a wrapped type, convert from JSON if needed
220
+ let payload;
221
+ if (input.$typeName) {
222
+ // It's the original protobuf type
223
+ payload = input;
224
+ }
225
+ else {
226
+ // It's regular JSON, convert using fromJson
227
+ payload = fromJson(GetSignatureStatusesRequestSchema, input);
228
+ }
229
+ // Include all labels in capability ID for routing when specified
230
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
231
+ const capabilityResponse = runtime.callCapability({
232
+ capabilityId,
233
+ method: 'GetSignatureStatuses',
234
+ payload,
235
+ inputSchema: GetSignatureStatusesRequestSchema,
236
+ outputSchema: GetSignatureStatusesReplySchema,
237
+ });
238
+ return {
239
+ result: () => {
240
+ const result = capabilityResponse.result();
241
+ return result;
242
+ },
243
+ };
244
+ }
245
+ getSlotHeight(runtime, input) {
246
+ // Handle input conversion - unwrap if it's a wrapped type, convert from JSON if needed
247
+ let payload;
248
+ if (input.$typeName) {
249
+ // It's the original protobuf type
250
+ payload = input;
251
+ }
252
+ else {
253
+ // It's regular JSON, convert using fromJson
254
+ payload = fromJson(GetSlotHeightRequestSchema, input);
255
+ }
256
+ // Include all labels in capability ID for routing when specified
257
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
258
+ const capabilityResponse = runtime.callCapability({
259
+ capabilityId,
260
+ method: 'GetSlotHeight',
261
+ payload,
262
+ inputSchema: GetSlotHeightRequestSchema,
263
+ outputSchema: GetSlotHeightReplySchema,
264
+ });
265
+ return {
266
+ result: () => {
267
+ const result = capabilityResponse.result();
268
+ return result;
269
+ },
270
+ };
271
+ }
272
+ getTransaction(runtime, input) {
273
+ // Handle input conversion - unwrap if it's a wrapped type, convert from JSON if needed
274
+ let payload;
275
+ if (input.$typeName) {
276
+ // It's the original protobuf type
277
+ payload = input;
278
+ }
279
+ else {
280
+ // It's regular JSON, convert using fromJson
281
+ payload = fromJson(GetTransactionRequestSchema, input);
282
+ }
283
+ // Include all labels in capability ID for routing when specified
284
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
285
+ const capabilityResponse = runtime.callCapability({
286
+ capabilityId,
287
+ method: 'GetTransaction',
288
+ payload,
289
+ inputSchema: GetTransactionRequestSchema,
290
+ outputSchema: GetTransactionReplySchema,
291
+ });
292
+ return {
293
+ result: () => {
294
+ const result = capabilityResponse.result();
295
+ return result;
296
+ },
297
+ };
298
+ }
299
+ logTrigger(config) {
300
+ // Include all labels in capability ID for routing when specified
301
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
302
+ return new ClientLogTrigger(config, capabilityId, 'LogTrigger', this.ChainSelector);
303
+ }
55
304
  writeReport(runtime, input) {
56
305
  // Handle input conversion - unwrap if it's a wrapped type, convert from JSON if needed
57
306
  let payload;
@@ -81,3 +330,156 @@ export class ClientCapability {
81
330
  };
82
331
  }
83
332
  }
333
+ /**
334
+ * Trigger implementation for LogTrigger
335
+ */
336
+ class ClientLogTrigger {
337
+ _capabilityId;
338
+ _method;
339
+ ChainSelector;
340
+ config;
341
+ constructor(config, _capabilityId, _method, ChainSelector) {
342
+ this._capabilityId = _capabilityId;
343
+ this._method = _method;
344
+ this.ChainSelector = ChainSelector;
345
+ // biome-ignore lint/suspicious/noExplicitAny: Needed for runtime type checking of protocol buffer messages
346
+ this.config = config.$typeName
347
+ ? config
348
+ : fromJson(FilterLogTriggerRequestSchema, config);
349
+ }
350
+ capabilityId() {
351
+ return this._capabilityId;
352
+ }
353
+ method() {
354
+ return this._method;
355
+ }
356
+ outputSchema() {
357
+ return LogSchema;
358
+ }
359
+ configAsAny() {
360
+ return anyPack(FilterLogTriggerRequestSchema, this.config);
361
+ }
362
+ /**
363
+ * Transform the raw trigger output - override this method if needed
364
+ * Default implementation returns the raw output unchanged
365
+ */
366
+ adapt(rawOutput) {
367
+ return rawOutput;
368
+ }
369
+ }
370
+ export class ClientRestrictor {
371
+ ChainSelector;
372
+ constructor(ChainSelector) {
373
+ this.ChainSelector = ChainSelector;
374
+ }
375
+ limitGetAccountInfoWithOpts(maxCalls) {
376
+ // Include all labels in capability ID for routing when specified
377
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
378
+ return {
379
+ method: {
380
+ id: capabilityId,
381
+ method: 'GetAccountInfoWithOpts',
382
+ maxCalls,
383
+ },
384
+ };
385
+ }
386
+ limitGetBalance(maxCalls) {
387
+ // Include all labels in capability ID for routing when specified
388
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
389
+ return {
390
+ method: {
391
+ id: capabilityId,
392
+ method: 'GetBalance',
393
+ maxCalls,
394
+ },
395
+ };
396
+ }
397
+ limitGetBlock(maxCalls) {
398
+ // Include all labels in capability ID for routing when specified
399
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
400
+ return {
401
+ method: {
402
+ id: capabilityId,
403
+ method: 'GetBlock',
404
+ maxCalls,
405
+ },
406
+ };
407
+ }
408
+ limitGetFeeForMessage(maxCalls) {
409
+ // Include all labels in capability ID for routing when specified
410
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
411
+ return {
412
+ method: {
413
+ id: capabilityId,
414
+ method: 'GetFeeForMessage',
415
+ maxCalls,
416
+ },
417
+ };
418
+ }
419
+ limitGetMultipleAccountsWithOpts(maxCalls) {
420
+ // Include all labels in capability ID for routing when specified
421
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
422
+ return {
423
+ method: {
424
+ id: capabilityId,
425
+ method: 'GetMultipleAccountsWithOpts',
426
+ maxCalls,
427
+ },
428
+ };
429
+ }
430
+ limitGetProgramAccounts(maxCalls) {
431
+ // Include all labels in capability ID for routing when specified
432
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
433
+ return {
434
+ method: {
435
+ id: capabilityId,
436
+ method: 'GetProgramAccounts',
437
+ maxCalls,
438
+ },
439
+ };
440
+ }
441
+ limitGetSignatureStatuses(maxCalls) {
442
+ // Include all labels in capability ID for routing when specified
443
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
444
+ return {
445
+ method: {
446
+ id: capabilityId,
447
+ method: 'GetSignatureStatuses',
448
+ maxCalls,
449
+ },
450
+ };
451
+ }
452
+ limitGetSlotHeight(maxCalls) {
453
+ // Include all labels in capability ID for routing when specified
454
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
455
+ return {
456
+ method: {
457
+ id: capabilityId,
458
+ method: 'GetSlotHeight',
459
+ maxCalls,
460
+ },
461
+ };
462
+ }
463
+ limitGetTransaction(maxCalls) {
464
+ // Include all labels in capability ID for routing when specified
465
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
466
+ return {
467
+ method: {
468
+ id: capabilityId,
469
+ method: 'GetTransaction',
470
+ maxCalls,
471
+ },
472
+ };
473
+ }
474
+ limitWriteReport(maxCalls) {
475
+ // Include all labels in capability ID for routing when specified
476
+ const capabilityId = `${ClientCapability.CAPABILITY_NAME}:ChainSelector:${this.ChainSelector}@${ClientCapability.CAPABILITY_VERSION}`;
477
+ return {
478
+ method: {
479
+ id: capabilityId,
480
+ method: 'WriteReport',
481
+ maxCalls,
482
+ },
483
+ };
484
+ }
485
+ }
@@ -1,4 +1,4 @@
1
- import { type ReportRequest, type ReportRequestJson, type SimpleConsensusInputs, type SimpleConsensusInputsJson } from '../../../../../generated/sdk/v1alpha/sdk_pb';
1
+ import { type CapabilityRestrictionJson, type ReportRequest, type ReportRequestJson, type SimpleConsensusInputs, type SimpleConsensusInputsJson } from '../../../../../generated/sdk/v1alpha/sdk_pb';
2
2
  import { type Value } from '../../../../../generated/values/v1/values_pb';
3
3
  import type { Runtime } from '../../../../../sdk';
4
4
  import { Report } from '../../../../../sdk/report';
@@ -22,3 +22,7 @@ export declare class ConsensusCapability {
22
22
  result: () => Report;
23
23
  };
24
24
  }
25
+ export declare class ConsensusRestrictor {
26
+ limitSimple(maxCalls: number): CapabilityRestrictionJson;
27
+ limitReport(maxCalls: number): CapabilityRestrictionJson;
28
+ }
@@ -68,3 +68,25 @@ export class ConsensusCapability {
68
68
  };
69
69
  }
70
70
  }
71
+ export class ConsensusRestrictor {
72
+ limitSimple(maxCalls) {
73
+ const capabilityId = ConsensusCapability.CAPABILITY_ID;
74
+ return {
75
+ method: {
76
+ id: capabilityId,
77
+ method: 'Simple',
78
+ maxCalls,
79
+ },
80
+ };
81
+ }
82
+ limitReport(maxCalls) {
83
+ const capabilityId = ConsensusCapability.CAPABILITY_ID;
84
+ return {
85
+ method: {
86
+ id: capabilityId,
87
+ method: 'Report',
88
+ maxCalls,
89
+ },
90
+ };
91
+ }
92
+ }
@@ -1,4 +1,5 @@
1
1
  import { type ConfidentialHTTPRequest, type ConfidentialHTTPRequestJson, type HTTPResponse } from '../../../../../generated/capabilities/networking/confidentialhttp/v1alpha/client_pb';
2
+ import type { CapabilityRestrictionJson } from '../../../../../generated/sdk/v1alpha/sdk_pb';
2
3
  import type { Runtime } from '../../../../../sdk';
3
4
  import type { CapabilityInput } from '../../../../../sdk/utils/types/no-excess';
4
5
  /**
@@ -17,3 +18,6 @@ export declare class ClientCapability {
17
18
  result: () => HTTPResponse;
18
19
  };
19
20
  }
21
+ export declare class ClientRestrictor {
22
+ limitSendRequest(maxCalls: number): CapabilityRestrictionJson;
23
+ }
@@ -41,3 +41,15 @@ export class ClientCapability {
41
41
  };
42
42
  }
43
43
  }
44
+ export class ClientRestrictor {
45
+ limitSendRequest(maxCalls) {
46
+ const capabilityId = ClientCapability.CAPABILITY_ID;
47
+ return {
48
+ method: {
49
+ id: capabilityId,
50
+ method: 'SendRequest',
51
+ maxCalls,
52
+ },
53
+ };
54
+ }
55
+ }
@@ -1,5 +1,6 @@
1
1
  import { type Request, type RequestJson, type Response } from '../../../../../generated/capabilities/networking/http/v1alpha/client_pb';
2
- import type { NodeRuntime, Runtime } from '../../../../../sdk';
2
+ import type { CapabilityRestrictionJson } from '../../../../../generated/sdk/v1alpha/sdk_pb';
3
+ import type { NodeRuntime, Runtime, TeeRuntime } from '../../../../../sdk';
3
4
  import type { ConsensusAggregation, PrimitiveTypes, UnwrapOptions } from '../../../../../sdk/utils';
4
5
  import type { CapabilityInput } from '../../../../../sdk/utils/types/no-excess';
5
6
  export declare class SendRequester {
@@ -22,12 +23,21 @@ export declare class ClientCapability {
22
23
  static readonly CAPABILITY_ID = "http-actions@1.0.0-alpha";
23
24
  static readonly CAPABILITY_NAME = "http-actions";
24
25
  static readonly CAPABILITY_VERSION = "1.0.0-alpha";
26
+ sendRequest<TInput>(runtime: TeeRuntime<unknown>, input: CapabilityInput<TInput, Request, RequestJson>): {
27
+ result: () => Response;
28
+ };
25
29
  sendRequest<TInput>(runtime: NodeRuntime<unknown>, input: CapabilityInput<TInput, Request, RequestJson>): {
26
30
  result: () => Response;
27
31
  };
32
+ sendRequest<TInput>(runtime: NodeRuntime<unknown> | TeeRuntime<unknown>, input: CapabilityInput<TInput, Request, RequestJson>): {
33
+ result: () => Response;
34
+ };
28
35
  sendRequest<TArgs extends unknown[], TOutput>(runtime: Runtime<unknown>, fn: (sendRequester: SendRequester, ...args: TArgs) => TOutput, consensusAggregation: ConsensusAggregation<TOutput, true>, unwrapOptions?: TOutput extends PrimitiveTypes ? never : UnwrapOptions<TOutput>): (...args: TArgs) => {
29
36
  result: () => TOutput;
30
37
  };
31
38
  private sendRequestCallHelper;
32
39
  private sendRequestSugarHelper;
33
40
  }
41
+ export declare class ClientRestrictor {
42
+ limitSendRequest(maxCalls: number): CapabilityRestrictionJson;
43
+ }
@@ -68,3 +68,15 @@ export class ClientCapability {
68
68
  return runtime.runInNodeMode(wrappedFn, consensusAggregation, unwrapOptions);
69
69
  }
70
70
  }
71
+ export class ClientRestrictor {
72
+ limitSendRequest(maxCalls) {
73
+ const capabilityId = ClientCapability.CAPABILITY_ID;
74
+ return {
75
+ method: {
76
+ id: capabilityId,
77
+ method: 'SendRequest',
78
+ maxCalls,
79
+ },
80
+ };
81
+ }
82
+ }
@@ -36,4 +36,6 @@ declare class HTTPTrigger implements Trigger<Payload, Payload> {
36
36
  */
37
37
  adapt(rawOutput: Payload): Payload;
38
38
  }
39
+ export declare class HTTPRestrictor {
40
+ }
39
41
  export {};
@@ -53,3 +53,5 @@ class HTTPTrigger {
53
53
  return rawOutput;
54
54
  }
55
55
  }
56
+ export class HTTPRestrictor {
57
+ }
@@ -36,4 +36,6 @@ declare class CronTrigger implements Trigger<Payload, Payload> {
36
36
  */
37
37
  adapt(rawOutput: Payload): Payload;
38
38
  }
39
+ export declare class CronRestrictor {
40
+ }
39
41
  export {};
@@ -53,3 +53,5 @@ class CronTrigger {
53
53
  return rawOutput;
54
54
  }
55
55
  }
56
+ export class CronRestrictor {
57
+ }
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * Public API for the CRE SDK.
3
3
  */
4
- import { ClientCapability as EVMClient } from '../../generated-sdk/capabilities/blockchain/evm/v1alpha/client_sdk_gen';
5
- import { ClientCapability as SolanaClient } from '../../generated-sdk/capabilities/blockchain/solana/v1alpha/client_sdk_gen';
6
- import { ClientCapability as ConfidentialHTTPClient } from '../../generated-sdk/capabilities/networking/confidentialhttp/v1alpha/client_sdk_gen';
7
- import { ClientCapability as HTTPClient } from '../../generated-sdk/capabilities/networking/http/v1alpha/client_sdk_gen';
8
- import { HTTPCapability } from '../../generated-sdk/capabilities/networking/http/v1alpha/http_sdk_gen';
9
- import { CronCapability } from '../../generated-sdk/capabilities/scheduler/cron/v1/cron_sdk_gen';
4
+ import { ClientCapability as AptosClient, ClientRestrictor as AptosRestrictor } from '../../generated-sdk/capabilities/blockchain/aptos/v1alpha/client_sdk_gen';
5
+ import { ClientCapability as EVMClient, ClientRestrictor as EVMRestrictor } from '../../generated-sdk/capabilities/blockchain/evm/v1alpha/client_sdk_gen';
6
+ import { ClientCapability as SolanaClient, ClientRestrictor as SolanaRestrictor } from '../../generated-sdk/capabilities/blockchain/solana/v1alpha/client_sdk_gen';
7
+ import { ClientCapability as ConfidentialHTTPClient, ClientRestrictor as ConfidentialHTTPRestrictor } from '../../generated-sdk/capabilities/networking/confidentialhttp/v1alpha/client_sdk_gen';
8
+ import { ClientCapability as HTTPClient, ClientRestrictor as HTTPClientRestrictor } from '../../generated-sdk/capabilities/networking/http/v1alpha/client_sdk_gen';
9
+ import { HTTPCapability, HTTPRestrictor } from '../../generated-sdk/capabilities/networking/http/v1alpha/http_sdk_gen';
10
+ import { CronCapability, CronRestrictor } from '../../generated-sdk/capabilities/scheduler/cron/v1/cron_sdk_gen';
10
11
  /**
11
12
  * Public exports for the CRE SDK.
12
13
  */
@@ -14,14 +15,17 @@ export { type Log as EVMLog, TxStatus, } from '../../generated/capabilities/bloc
14
15
  export { ReceiverContractExecutionStatus as SolanaReceiverContractExecutionStatus, TxStatus as SolanaTxStatus, } from '../../generated/capabilities/blockchain/solana/v1alpha/client_pb';
15
16
  export type { Payload as HTTPPayload } from '../../generated/capabilities/networking/http/v1alpha/trigger_pb';
16
17
  export type { Payload as CronPayload } from '../../generated/capabilities/scheduler/cron/v1/trigger_pb';
17
- export { ClientCapability as EVMClient, type WriteCreReportRequest, type WriteCreReportRequestJson, } from '../../generated-sdk/capabilities/blockchain/evm/v1alpha/client_sdk_gen';
18
- export { ClientCapability as SolanaClient, type WriteCreReportRequest as SolanaWriteCreReportRequest, type WriteCreReportRequestJson as SolanaWriteCreReportRequestJson, } from '../../generated-sdk/capabilities/blockchain/solana/v1alpha/client_sdk_gen';
19
- export { ClientCapability as ConfidentialHTTPClient } from '../../generated-sdk/capabilities/networking/confidentialhttp/v1alpha/client_sdk_gen';
20
- export { ClientCapability as HTTPClient, type SendRequester as HTTPSendRequester, } from '../../generated-sdk/capabilities/networking/http/v1alpha/client_sdk_gen';
21
- export { HTTPCapability } from '../../generated-sdk/capabilities/networking/http/v1alpha/http_sdk_gen';
22
- export { CronCapability } from '../../generated-sdk/capabilities/scheduler/cron/v1/cron_sdk_gen';
23
- export type { NodeRuntime, Runtime } from '../runtime';
24
- export { handler } from '../workflow';
18
+ export { TeeType } from '../../generated/sdk/v1alpha/sdk_pb';
19
+ export { ClientCapability as AptosClient, ClientRestrictor as AptosRestrictor, type WriteCreReportRequest as AptosWriteCreReportRequest, type WriteCreReportRequestJson as AptosWriteCreReportRequestJson, } from '../../generated-sdk/capabilities/blockchain/aptos/v1alpha/client_sdk_gen';
20
+ export { ClientCapability as EVMClient, ClientRestrictor as EVMRestrictor, type WriteCreReportRequest, type WriteCreReportRequestJson, } from '../../generated-sdk/capabilities/blockchain/evm/v1alpha/client_sdk_gen';
21
+ export { ClientCapability as SolanaClient, ClientRestrictor as SolanaRestrictor, type WriteCreReportRequest as SolanaWriteCreReportRequest, type WriteCreReportRequestJson as SolanaWriteCreReportRequestJson, } from '../../generated-sdk/capabilities/blockchain/solana/v1alpha/client_sdk_gen';
22
+ export { ClientCapability as ConfidentialHTTPClient, ClientRestrictor as ConfidentialHTTPRestrictor, } from '../../generated-sdk/capabilities/networking/confidentialhttp/v1alpha/client_sdk_gen';
23
+ export { ClientCapability as HTTPClient, ClientRestrictor as HTTPClientRestrictor, type SendRequester as HTTPSendRequester, } from '../../generated-sdk/capabilities/networking/http/v1alpha/client_sdk_gen';
24
+ export { HTTPCapability, HTTPRestrictor, } from '../../generated-sdk/capabilities/networking/http/v1alpha/http_sdk_gen';
25
+ export { CronCapability, CronRestrictor, } from '../../generated-sdk/capabilities/scheduler/cron/v1/cron_sdk_gen';
26
+ export type { NodeRuntime, Runtime, TeeRuntime } from '../runtime';
27
+ export type { AnyTeeConstraint, NitroBinding, NitroRegion, OneOfTees, Region, TeeBinding, TeeConstraint, } from '../workflow';
28
+ export { handler, handlerInTee, NITRO_REGIONS, REGIONS } from '../workflow';
25
29
  export declare const cre: {
26
30
  capabilities: {
27
31
  CronCapability: typeof CronCapability;
@@ -29,7 +33,18 @@ export declare const cre: {
29
33
  ConfidentialHTTPClient: typeof ConfidentialHTTPClient;
30
34
  HTTPClient: typeof HTTPClient;
31
35
  EVMClient: typeof EVMClient;
36
+ AptosClient: typeof AptosClient;
32
37
  SolanaClient: typeof SolanaClient;
33
38
  };
34
- handler: <TRawTriggerOutput extends import("@bufbuild/protobuf").Message<string>, TTriggerOutput, TConfig, TResult>(trigger: import("../utils/triggers/trigger-interface").Trigger<TRawTriggerOutput, TTriggerOutput>, fn: import("../workflow").HandlerFn<TConfig, TTriggerOutput, TResult>) => import("../workflow").HandlerEntry<TConfig, TRawTriggerOutput, TTriggerOutput, TResult>;
39
+ restrictors: {
40
+ CronRestrictor: typeof CronRestrictor;
41
+ HTTPRestrictor: typeof HTTPRestrictor;
42
+ ConfidentialHTTPRestrictor: typeof ConfidentialHTTPRestrictor;
43
+ HTTPClientRestrictor: typeof HTTPClientRestrictor;
44
+ EVMRestrictor: typeof EVMRestrictor;
45
+ SolanaRestrictor: typeof SolanaRestrictor;
46
+ AptosRestrictor: typeof AptosRestrictor;
47
+ };
48
+ handler: <TRawTriggerOutput extends import("@bufbuild/protobuf").Message<string>, TTriggerOutput, TConfig, TResult, TRuntime = import("../runtime").Runtime<TConfig>>(trigger: import("../utils/triggers/trigger-interface").Trigger<TRawTriggerOutput, TTriggerOutput>, fn: import("../workflow").HandlerFn<TConfig, TTriggerOutput, TResult, TRuntime>, hooks?: import("../workflow").Hooks<TConfig, TTriggerOutput>) => import("../workflow").HandlerEntry<TConfig, TRawTriggerOutput, TTriggerOutput, TResult, TRuntime>;
49
+ handlerInTee: <TRawTriggerOutput extends import("@bufbuild/protobuf").Message<string>, TTriggerOutput, TConfig, TResult>(trigger: import("../utils/triggers/trigger-interface").Trigger<TRawTriggerOutput, TTriggerOutput>, fn: import("../workflow").HandlerFn<TConfig, TTriggerOutput, TResult, import("../runtime").TeeRuntime<TConfig>>, tees: import("../workflow").TeeConstraint, hooks?: import("../workflow").Hooks<TConfig, TTriggerOutput>) => import("../workflow").HandlerEntry<TConfig, TRawTriggerOutput, TTriggerOutput, TResult, import("../runtime").TeeRuntime<TConfig>>;
35
50
  };