@dfinity/pic 0.12.0-b0

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 (63) hide show
  1. package/README.md +73 -0
  2. package/dist/error.d.ts +21 -0
  3. package/dist/error.js +55 -0
  4. package/dist/error.js.map +1 -0
  5. package/dist/http2-client.d.ts +27 -0
  6. package/dist/http2-client.js +137 -0
  7. package/dist/http2-client.js.map +1 -0
  8. package/dist/identity.d.ts +74 -0
  9. package/dist/identity.js +94 -0
  10. package/dist/identity.js.map +1 -0
  11. package/dist/index.d.ts +7 -0
  12. package/dist/index.js +24 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/management-canister.d.ts +45 -0
  15. package/dist/management-canister.js +71 -0
  16. package/dist/management-canister.js.map +1 -0
  17. package/dist/pocket-ic-actor.d.ts +85 -0
  18. package/dist/pocket-ic-actor.js +58 -0
  19. package/dist/pocket-ic-actor.js.map +1 -0
  20. package/dist/pocket-ic-client-types.d.ts +372 -0
  21. package/dist/pocket-ic-client-types.js +395 -0
  22. package/dist/pocket-ic-client-types.js.map +1 -0
  23. package/dist/pocket-ic-client.d.ts +31 -0
  24. package/dist/pocket-ic-client.js +152 -0
  25. package/dist/pocket-ic-client.js.map +1 -0
  26. package/dist/pocket-ic-deferred-actor.d.ts +67 -0
  27. package/dist/pocket-ic-deferred-actor.js +44 -0
  28. package/dist/pocket-ic-deferred-actor.js.map +1 -0
  29. package/dist/pocket-ic-server-types.d.ts +13 -0
  30. package/dist/pocket-ic-server-types.js +3 -0
  31. package/dist/pocket-ic-server-types.js.map +1 -0
  32. package/dist/pocket-ic-server.d.ts +53 -0
  33. package/dist/pocket-ic-server.js +126 -0
  34. package/dist/pocket-ic-server.js.map +1 -0
  35. package/dist/pocket-ic-types.d.ts +679 -0
  36. package/dist/pocket-ic-types.js +72 -0
  37. package/dist/pocket-ic-types.js.map +1 -0
  38. package/dist/pocket-ic.d.ts +972 -0
  39. package/dist/pocket-ic.js +1248 -0
  40. package/dist/pocket-ic.js.map +1 -0
  41. package/dist/util/candid.d.ts +3 -0
  42. package/dist/util/candid.js +21 -0
  43. package/dist/util/candid.js.map +1 -0
  44. package/dist/util/encoding.d.ts +6 -0
  45. package/dist/util/encoding.js +24 -0
  46. package/dist/util/encoding.js.map +1 -0
  47. package/dist/util/fs.d.ts +4 -0
  48. package/dist/util/fs.js +28 -0
  49. package/dist/util/fs.js.map +1 -0
  50. package/dist/util/index.d.ts +6 -0
  51. package/dist/util/index.js +23 -0
  52. package/dist/util/index.js.map +1 -0
  53. package/dist/util/is-nil.d.ts +2 -0
  54. package/dist/util/is-nil.js +11 -0
  55. package/dist/util/is-nil.js.map +1 -0
  56. package/dist/util/os.d.ts +4 -0
  57. package/dist/util/os.js +19 -0
  58. package/dist/util/os.js.map +1 -0
  59. package/dist/util/poll.d.ts +5 -0
  60. package/dist/util/poll.js +23 -0
  61. package/dist/util/poll.js.map +1 -0
  62. package/package.json +40 -0
  63. package/postinstall.mjs +25 -0
@@ -0,0 +1,395 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EncodedCanisterHttpMethod = exports.CanisterHttpMethod = exports.SubnetType = exports.SubnetStateType = void 0;
4
+ exports.encodeCreateInstanceRequest = encodeCreateInstanceRequest;
5
+ exports.encodeGetPubKeyRequest = encodeGetPubKeyRequest;
6
+ exports.decodeGetTopologyResponse = decodeGetTopologyResponse;
7
+ exports.decodeSubnetTopology = decodeSubnetTopology;
8
+ exports.decodeSubnetKind = decodeSubnetKind;
9
+ exports.encodeGetControllersRequest = encodeGetControllersRequest;
10
+ exports.decodeGetControllersResponse = decodeGetControllersResponse;
11
+ exports.decodeGetTimeResponse = decodeGetTimeResponse;
12
+ exports.encodeSetTimeRequest = encodeSetTimeRequest;
13
+ exports.encodeGetSubnetIdRequest = encodeGetSubnetIdRequest;
14
+ exports.decodeGetSubnetIdResponse = decodeGetSubnetIdResponse;
15
+ exports.encodeGetCyclesBalanceRequest = encodeGetCyclesBalanceRequest;
16
+ exports.decodeGetCyclesBalanceResponse = decodeGetCyclesBalanceResponse;
17
+ exports.encodeAddCyclesRequest = encodeAddCyclesRequest;
18
+ exports.decodeAddCyclesResponse = decodeAddCyclesResponse;
19
+ exports.encodeUploadBlobRequest = encodeUploadBlobRequest;
20
+ exports.decodeUploadBlobResponse = decodeUploadBlobResponse;
21
+ exports.encodeSetStableMemoryRequest = encodeSetStableMemoryRequest;
22
+ exports.encodeGetStableMemoryRequest = encodeGetStableMemoryRequest;
23
+ exports.decodeGetStableMemoryResponse = decodeGetStableMemoryResponse;
24
+ exports.decodeGetPendingHttpsOutcallsResponse = decodeGetPendingHttpsOutcallsResponse;
25
+ exports.encodeMockPendingHttpsOutcallRequest = encodeMockPendingHttpsOutcallRequest;
26
+ exports.encodeEffectivePrincipal = encodeEffectivePrincipal;
27
+ exports.decodeEffectivePrincipal = decodeEffectivePrincipal;
28
+ exports.encodeCanisterCallRequest = encodeCanisterCallRequest;
29
+ exports.decodeCanisterCallResponse = decodeCanisterCallResponse;
30
+ exports.encodeSubmitCanisterCallRequest = encodeSubmitCanisterCallRequest;
31
+ exports.decodeSubmitCanisterCallResponse = decodeSubmitCanisterCallResponse;
32
+ exports.encodeAwaitCanisterCallRequest = encodeAwaitCanisterCallRequest;
33
+ exports.decodeAwaitCanisterCallResponse = decodeAwaitCanisterCallResponse;
34
+ const principal_1 = require("@dfinity/principal");
35
+ const util_1 = require("./util");
36
+ const error_1 = require("./error");
37
+ var SubnetStateType;
38
+ (function (SubnetStateType) {
39
+ SubnetStateType["New"] = "new";
40
+ SubnetStateType["FromPath"] = "fromPath";
41
+ })(SubnetStateType || (exports.SubnetStateType = SubnetStateType = {}));
42
+ function encodeManySubnetConfigs(configs = []) {
43
+ return configs.map(encodeSubnetConfig).filter(util_1.isNotNil);
44
+ }
45
+ function encodeSubnetConfig(config) {
46
+ if ((0, util_1.isNil)(config)) {
47
+ return undefined;
48
+ }
49
+ switch (config.state.type) {
50
+ default: {
51
+ throw new Error(`Unknown subnet state type: ${config.state}`);
52
+ }
53
+ case SubnetStateType.New: {
54
+ return {
55
+ dts_flag: encodeDtsFlag(config.enableDeterministicTimeSlicing),
56
+ instruction_config: encodeInstructionConfig(config.enableBenchmarkingInstructionLimits),
57
+ state_config: 'New',
58
+ };
59
+ }
60
+ case SubnetStateType.FromPath: {
61
+ return {
62
+ dts_flag: encodeDtsFlag(config.enableDeterministicTimeSlicing),
63
+ instruction_config: encodeInstructionConfig(config.enableBenchmarkingInstructionLimits),
64
+ state_config: {
65
+ FromPath: [
66
+ config.state.path,
67
+ { subnet_id: (0, util_1.base64EncodePrincipal)(config.state.subnetId) },
68
+ ],
69
+ },
70
+ };
71
+ }
72
+ }
73
+ }
74
+ function encodeDtsFlag(enableDeterministicTimeSlicing) {
75
+ return enableDeterministicTimeSlicing === false ? 'Disabled' : 'Enabled';
76
+ }
77
+ function encodeInstructionConfig(enableBenchmarkingInstructionLimits) {
78
+ return enableBenchmarkingInstructionLimits === true
79
+ ? 'Benchmarking'
80
+ : 'Production';
81
+ }
82
+ function encodeCreateInstanceRequest(req) {
83
+ const defaultApplicationSubnet = {
84
+ state: { type: SubnetStateType.New },
85
+ };
86
+ const defaultOptions = req ?? {
87
+ application: [defaultApplicationSubnet],
88
+ };
89
+ const options = {
90
+ subnet_config_set: {
91
+ nns: encodeSubnetConfig(defaultOptions.nns),
92
+ sns: encodeSubnetConfig(defaultOptions.sns),
93
+ ii: encodeSubnetConfig(defaultOptions.ii),
94
+ fiduciary: encodeSubnetConfig(defaultOptions.fiduciary),
95
+ bitcoin: encodeSubnetConfig(defaultOptions.bitcoin),
96
+ system: encodeManySubnetConfigs(defaultOptions.system),
97
+ application: encodeManySubnetConfigs(defaultOptions.application ?? [defaultApplicationSubnet]),
98
+ verified_application: encodeManySubnetConfigs(defaultOptions.verifiedApplication),
99
+ },
100
+ nonmainnet_features: defaultOptions.nonmainnetFeatures ?? false,
101
+ };
102
+ if (((0, util_1.isNil)(options.subnet_config_set.nns) &&
103
+ (0, util_1.isNil)(options.subnet_config_set.sns) &&
104
+ (0, util_1.isNil)(options.subnet_config_set.ii) &&
105
+ (0, util_1.isNil)(options.subnet_config_set.fiduciary) &&
106
+ (0, util_1.isNil)(options.subnet_config_set.bitcoin) &&
107
+ options.subnet_config_set.system.length === 0 &&
108
+ options.subnet_config_set.application.length === 0) ||
109
+ options.subnet_config_set.system.length < 0 ||
110
+ options.subnet_config_set.application.length < 0) {
111
+ throw new error_1.TopologyValidationError();
112
+ }
113
+ return options;
114
+ }
115
+ function encodeGetPubKeyRequest(req) {
116
+ return {
117
+ subnet_id: (0, util_1.base64EncodePrincipal)(req.subnetId),
118
+ };
119
+ }
120
+ var SubnetType;
121
+ (function (SubnetType) {
122
+ SubnetType["Application"] = "Application";
123
+ SubnetType["Bitcoin"] = "Bitcoin";
124
+ SubnetType["Fiduciary"] = "Fiduciary";
125
+ SubnetType["InternetIdentity"] = "II";
126
+ SubnetType["NNS"] = "NNS";
127
+ SubnetType["SNS"] = "SNS";
128
+ SubnetType["System"] = "System";
129
+ })(SubnetType || (exports.SubnetType = SubnetType = {}));
130
+ function decodeGetTopologyResponse(encoded) {
131
+ return Object.fromEntries(Object.entries(encoded.subnet_configs).map(([subnetId, subnetTopology]) => [
132
+ subnetId,
133
+ decodeSubnetTopology(subnetId, subnetTopology),
134
+ ]));
135
+ }
136
+ function decodeSubnetTopology(subnetId, encoded) {
137
+ return {
138
+ id: principal_1.Principal.fromText(subnetId),
139
+ type: decodeSubnetKind(encoded.subnet_kind),
140
+ size: encoded.size,
141
+ canisterRanges: encoded.canister_ranges.map(range => ({
142
+ start: (0, util_1.base64DecodePrincipal)(range.start.canister_id),
143
+ end: (0, util_1.base64DecodePrincipal)(range.end.canister_id),
144
+ })),
145
+ };
146
+ }
147
+ function decodeSubnetKind(kind) {
148
+ switch (kind) {
149
+ case 'Application':
150
+ return SubnetType.Application;
151
+ case 'Bitcoin':
152
+ return SubnetType.Bitcoin;
153
+ case 'Fiduciary':
154
+ return SubnetType.Fiduciary;
155
+ case 'II':
156
+ return SubnetType.InternetIdentity;
157
+ case 'NNS':
158
+ return SubnetType.NNS;
159
+ case 'SNS':
160
+ return SubnetType.SNS;
161
+ case 'System':
162
+ return SubnetType.System;
163
+ default:
164
+ throw new Error(`Unknown subnet kind: ${kind}`);
165
+ }
166
+ }
167
+ function encodeGetControllersRequest(req) {
168
+ return {
169
+ canister_id: (0, util_1.base64EncodePrincipal)(req.canisterId),
170
+ };
171
+ }
172
+ function decodeGetControllersResponse(res) {
173
+ return res.map(({ principal_id }) => (0, util_1.base64DecodePrincipal)(principal_id));
174
+ }
175
+ function decodeGetTimeResponse(res) {
176
+ return {
177
+ millisSinceEpoch: res.nanos_since_epoch / 1_000_000,
178
+ };
179
+ }
180
+ function encodeSetTimeRequest(req) {
181
+ return {
182
+ nanos_since_epoch: req.millisSinceEpoch * 1_000_000,
183
+ };
184
+ }
185
+ function encodeGetSubnetIdRequest(req) {
186
+ return {
187
+ canister_id: (0, util_1.base64EncodePrincipal)(req.canisterId),
188
+ };
189
+ }
190
+ function decodeGetSubnetIdResponse(res) {
191
+ if ((0, util_1.isNil)(res)) {
192
+ return { subnetId: null };
193
+ }
194
+ if ('subnet_id' in res) {
195
+ return { subnetId: (0, util_1.base64DecodePrincipal)(res.subnet_id) };
196
+ }
197
+ return { subnetId: null };
198
+ }
199
+ function encodeGetCyclesBalanceRequest(req) {
200
+ return {
201
+ canister_id: (0, util_1.base64EncodePrincipal)(req.canisterId),
202
+ };
203
+ }
204
+ function decodeGetCyclesBalanceResponse(res) {
205
+ return {
206
+ cycles: res.cycles,
207
+ };
208
+ }
209
+ function encodeAddCyclesRequest(req) {
210
+ return {
211
+ canister_id: (0, util_1.base64EncodePrincipal)(req.canisterId),
212
+ amount: req.amount,
213
+ };
214
+ }
215
+ function decodeAddCyclesResponse(res) {
216
+ return {
217
+ cycles: res.cycles,
218
+ };
219
+ }
220
+ function encodeUploadBlobRequest(req) {
221
+ return req.blob;
222
+ }
223
+ function decodeUploadBlobResponse(res) {
224
+ return {
225
+ blobId: new Uint8Array((0, util_1.hexDecode)(res)),
226
+ };
227
+ }
228
+ function encodeSetStableMemoryRequest(req) {
229
+ return {
230
+ canister_id: (0, util_1.base64EncodePrincipal)(req.canisterId),
231
+ blob_id: (0, util_1.base64Encode)(req.blobId),
232
+ };
233
+ }
234
+ function encodeGetStableMemoryRequest(req) {
235
+ return {
236
+ canister_id: (0, util_1.base64EncodePrincipal)(req.canisterId),
237
+ };
238
+ }
239
+ function decodeGetStableMemoryResponse(res) {
240
+ return {
241
+ blob: (0, util_1.base64Decode)(res.blob),
242
+ };
243
+ }
244
+ var CanisterHttpMethod;
245
+ (function (CanisterHttpMethod) {
246
+ CanisterHttpMethod["GET"] = "GET";
247
+ CanisterHttpMethod["POST"] = "POST";
248
+ CanisterHttpMethod["HEAD"] = "HEAD";
249
+ })(CanisterHttpMethod || (exports.CanisterHttpMethod = CanisterHttpMethod = {}));
250
+ var EncodedCanisterHttpMethod;
251
+ (function (EncodedCanisterHttpMethod) {
252
+ EncodedCanisterHttpMethod["GET"] = "GET";
253
+ EncodedCanisterHttpMethod["POST"] = "POST";
254
+ EncodedCanisterHttpMethod["HEAD"] = "HEAD";
255
+ })(EncodedCanisterHttpMethod || (exports.EncodedCanisterHttpMethod = EncodedCanisterHttpMethod = {}));
256
+ function decodeGetPendingHttpsOutcallsResponse(res) {
257
+ return res.map(decodeHttpOutcall);
258
+ }
259
+ function decodeHttpOutcall(res) {
260
+ return {
261
+ subnetId: (0, util_1.base64DecodePrincipal)(res.subnet_id.subnet_id),
262
+ requestId: res.request_id,
263
+ httpMethod: decodeCanisterHttpMethod(res.http_method),
264
+ url: res.url,
265
+ headers: res.headers.map(decodeHttpHeader),
266
+ body: (0, util_1.base64Decode)(res.body),
267
+ maxResponseBytes: res.max_response_bytes,
268
+ };
269
+ }
270
+ function decodeCanisterHttpMethod(method) {
271
+ switch (method) {
272
+ default:
273
+ throw new Error(`Unknown canister HTTP method: ${method}`);
274
+ case EncodedCanisterHttpMethod.GET:
275
+ return CanisterHttpMethod.GET;
276
+ case EncodedCanisterHttpMethod.POST:
277
+ return CanisterHttpMethod.POST;
278
+ case EncodedCanisterHttpMethod.HEAD:
279
+ return CanisterHttpMethod.HEAD;
280
+ }
281
+ }
282
+ function decodeHttpHeader(header) {
283
+ return [header.name, header.value];
284
+ }
285
+ function encodeMockPendingHttpsOutcallRequest(req) {
286
+ return {
287
+ subnet_id: {
288
+ subnet_id: (0, util_1.base64EncodePrincipal)(req.subnetId),
289
+ },
290
+ request_id: req.requestId,
291
+ response: encodeHttpsOutcallResponse(req.response),
292
+ additional_responses: req.additionalResponses.map(encodeHttpsOutcallResponse),
293
+ };
294
+ }
295
+ function encodeHttpsOutcallResponse(res) {
296
+ switch (res.type) {
297
+ default:
298
+ throw new Error(`Unknown response type: ${res}`);
299
+ case 'success': {
300
+ return {
301
+ CanisterHttpReply: {
302
+ status: res.statusCode,
303
+ headers: res.headers.map(encodeHttpHeader),
304
+ body: (0, util_1.base64Encode)(res.body),
305
+ },
306
+ };
307
+ }
308
+ case 'reject': {
309
+ return {
310
+ CanisterHttpReject: {
311
+ reject_code: res.statusCode,
312
+ message: res.message,
313
+ },
314
+ };
315
+ }
316
+ }
317
+ }
318
+ function encodeHttpHeader(header) {
319
+ return {
320
+ name: header[0],
321
+ value: header[1],
322
+ };
323
+ }
324
+ function encodeEffectivePrincipal(effectivePrincipal) {
325
+ if ((0, util_1.isNil)(effectivePrincipal)) {
326
+ return 'None';
327
+ }
328
+ if ('subnetId' in effectivePrincipal) {
329
+ return {
330
+ SubnetId: (0, util_1.base64EncodePrincipal)(effectivePrincipal.subnetId),
331
+ };
332
+ }
333
+ else {
334
+ return {
335
+ CanisterId: (0, util_1.base64EncodePrincipal)(effectivePrincipal.canisterId),
336
+ };
337
+ }
338
+ }
339
+ function decodeEffectivePrincipal(effectivePrincipal) {
340
+ if (effectivePrincipal === 'None') {
341
+ return null;
342
+ }
343
+ else if ('SubnetId' in effectivePrincipal) {
344
+ return {
345
+ subnetId: (0, util_1.base64DecodePrincipal)(effectivePrincipal.SubnetId),
346
+ };
347
+ }
348
+ else {
349
+ return {
350
+ canisterId: (0, util_1.base64DecodePrincipal)(effectivePrincipal.CanisterId),
351
+ };
352
+ }
353
+ }
354
+ function encodeCanisterCallRequest(req) {
355
+ return {
356
+ sender: (0, util_1.base64EncodePrincipal)(req.sender),
357
+ canister_id: (0, util_1.base64EncodePrincipal)(req.canisterId),
358
+ method: req.method,
359
+ payload: (0, util_1.base64Encode)(req.payload),
360
+ effective_principal: encodeEffectivePrincipal(req.effectivePrincipal),
361
+ };
362
+ }
363
+ function decodeCanisterCallResponse(res) {
364
+ const okRes = decodeResultResponse(res);
365
+ return {
366
+ body: (0, util_1.base64Decode)(okRes),
367
+ };
368
+ }
369
+ function decodeResultResponse(res) {
370
+ if ('Err' in res) {
371
+ throw new Error(`Canister call failed: ${res.Err.reject_message}. Reject code: ${res.Err.reject_code}. Error code: ${res.Err.error_code}. Certified: ${res.Err.certified}`);
372
+ }
373
+ return res.Ok;
374
+ }
375
+ function encodeSubmitCanisterCallRequest(req) {
376
+ return encodeCanisterCallRequest(req);
377
+ }
378
+ function decodeSubmitCanisterCallResponse(res) {
379
+ const okRes = decodeResultResponse(res);
380
+ return {
381
+ effectivePrincipal: decodeEffectivePrincipal(okRes.effective_principal),
382
+ messageId: okRes.message_id,
383
+ };
384
+ }
385
+ function encodeAwaitCanisterCallRequest(req) {
386
+ return {
387
+ effective_principal: encodeEffectivePrincipal(req.effectivePrincipal),
388
+ message_id: req.messageId,
389
+ };
390
+ }
391
+ function decodeAwaitCanisterCallResponse(res) {
392
+ return decodeCanisterCallResponse(res);
393
+ }
394
+ //#endregion AwaitCanisterCall
395
+ //# sourceMappingURL=pocket-ic-client-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pocket-ic-client-types.js","sourceRoot":"","sources":["../src/pocket-ic-client-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { InstanceTopology, GetStableMemoryRequest, GetStableMemoryResponse, SetStableMemoryRequest, AddCyclesRequest, AddCyclesResponse, GetCyclesBalanceResponse, GetCyclesBalanceRequest, GetSubnetIdResponse, GetSubnetIdRequest, GetTimeResponse, SetTimeRequest, CanisterCallRequest, CanisterCallResponse, UploadBlobResponse, UploadBlobRequest, CreateInstanceRequest, GetPubKeyRequest, GetPendingHttpsOutcallsResponse, MockPendingHttpsOutcallRequest, SubmitCanisterCallResponse, SubmitCanisterCallRequest, AwaitCanisterCallRequest, AwaitCanisterCallResponse, GetControllersRequest, GetControllersResponse } from './pocket-ic-client-types';
2
+ export declare class PocketIcClient {
3
+ private readonly serverClient;
4
+ private readonly instancePath;
5
+ private isInstanceDeleted;
6
+ private constructor();
7
+ static create(url: string, req?: CreateInstanceRequest): Promise<PocketIcClient>;
8
+ deleteInstance(): Promise<void>;
9
+ getControllers(req: GetControllersRequest): Promise<GetControllersResponse>;
10
+ tick(): Promise<{}>;
11
+ getPubKey(req: GetPubKeyRequest): Promise<Uint8Array>;
12
+ getTopology(): Promise<InstanceTopology>;
13
+ getTime(): Promise<GetTimeResponse>;
14
+ setTime(req: SetTimeRequest): Promise<void>;
15
+ setCertifiedTime(req: SetTimeRequest): Promise<void>;
16
+ getSubnetId(req: GetSubnetIdRequest): Promise<GetSubnetIdResponse>;
17
+ getCyclesBalance(req: GetCyclesBalanceRequest): Promise<GetCyclesBalanceResponse>;
18
+ addCycles(req: AddCyclesRequest): Promise<AddCyclesResponse>;
19
+ uploadBlob(req: UploadBlobRequest): Promise<UploadBlobResponse>;
20
+ setStableMemory(req: SetStableMemoryRequest): Promise<void>;
21
+ getStableMemory(req: GetStableMemoryRequest): Promise<GetStableMemoryResponse>;
22
+ getPendingHttpsOutcalls(): Promise<GetPendingHttpsOutcallsResponse[]>;
23
+ mockPendingHttpsOutcall(req: MockPendingHttpsOutcallRequest): Promise<void>;
24
+ updateCall(req: CanisterCallRequest): Promise<CanisterCallResponse>;
25
+ queryCall(req: CanisterCallRequest): Promise<CanisterCallResponse>;
26
+ submitCall(req: SubmitCanisterCallRequest): Promise<SubmitCanisterCallResponse>;
27
+ awaitCall(req: AwaitCanisterCallRequest): Promise<AwaitCanisterCallResponse>;
28
+ private post;
29
+ private get;
30
+ private assertInstanceNotDeleted;
31
+ }
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PocketIcClient = void 0;
4
+ const http2_client_1 = require("./http2-client");
5
+ const pocket_ic_client_types_1 = require("./pocket-ic-client-types");
6
+ const PROCESSING_TIME_VALUE_MS = 30_000;
7
+ class PocketIcClient {
8
+ serverClient;
9
+ instancePath;
10
+ isInstanceDeleted = false;
11
+ constructor(serverClient, instancePath) {
12
+ this.serverClient = serverClient;
13
+ this.instancePath = instancePath;
14
+ }
15
+ static async create(url, req) {
16
+ const processingTimeoutMs = req?.processingTimeoutMs ?? PROCESSING_TIME_VALUE_MS;
17
+ const serverClient = new http2_client_1.Http2Client(url, processingTimeoutMs);
18
+ const res = await serverClient.jsonPost({
19
+ path: '/instances',
20
+ body: (0, pocket_ic_client_types_1.encodeCreateInstanceRequest)(req),
21
+ });
22
+ if ('Error' in res) {
23
+ console.error('Error creating instance', res.Error.message);
24
+ throw new Error(res.Error.message);
25
+ }
26
+ const instanceId = res.Created.instance_id;
27
+ return new PocketIcClient(serverClient, `/instances/${instanceId}`);
28
+ }
29
+ async deleteInstance() {
30
+ this.assertInstanceNotDeleted();
31
+ await this.serverClient.request({
32
+ method: 'DELETE',
33
+ path: this.instancePath,
34
+ });
35
+ this.isInstanceDeleted = true;
36
+ }
37
+ async getControllers(req) {
38
+ this.assertInstanceNotDeleted();
39
+ const res = await this.post('/read/get_controllers', (0, pocket_ic_client_types_1.encodeGetControllersRequest)(req));
40
+ return (0, pocket_ic_client_types_1.decodeGetControllersResponse)(res);
41
+ }
42
+ async tick() {
43
+ this.assertInstanceNotDeleted();
44
+ return await this.post('/update/tick', {});
45
+ }
46
+ async getPubKey(req) {
47
+ this.assertInstanceNotDeleted();
48
+ return await this.post('/read/pub_key', (0, pocket_ic_client_types_1.encodeGetPubKeyRequest)(req));
49
+ }
50
+ async getTopology() {
51
+ this.assertInstanceNotDeleted();
52
+ const res = await this.get('/_/topology');
53
+ return (0, pocket_ic_client_types_1.decodeGetTopologyResponse)(res);
54
+ }
55
+ async getTime() {
56
+ this.assertInstanceNotDeleted();
57
+ const res = await this.get('/read/get_time');
58
+ return (0, pocket_ic_client_types_1.decodeGetTimeResponse)(res);
59
+ }
60
+ async setTime(req) {
61
+ this.assertInstanceNotDeleted();
62
+ await this.post('/update/set_time', (0, pocket_ic_client_types_1.encodeSetTimeRequest)(req));
63
+ }
64
+ async setCertifiedTime(req) {
65
+ this.assertInstanceNotDeleted();
66
+ await this.post('/update/set_certified_time', (0, pocket_ic_client_types_1.encodeSetTimeRequest)(req));
67
+ }
68
+ async getSubnetId(req) {
69
+ this.assertInstanceNotDeleted();
70
+ const res = await this.post('/read/get_subnet', (0, pocket_ic_client_types_1.encodeGetSubnetIdRequest)(req));
71
+ return (0, pocket_ic_client_types_1.decodeGetSubnetIdResponse)(res);
72
+ }
73
+ async getCyclesBalance(req) {
74
+ this.assertInstanceNotDeleted();
75
+ const res = await this.post('/read/get_cycles', (0, pocket_ic_client_types_1.encodeGetCyclesBalanceRequest)(req));
76
+ return (0, pocket_ic_client_types_1.decodeGetCyclesBalanceResponse)(res);
77
+ }
78
+ async addCycles(req) {
79
+ this.assertInstanceNotDeleted();
80
+ const res = await this.post('/update/add_cycles', (0, pocket_ic_client_types_1.encodeAddCyclesRequest)(req));
81
+ return (0, pocket_ic_client_types_1.decodeAddCyclesResponse)(res);
82
+ }
83
+ async uploadBlob(req) {
84
+ this.assertInstanceNotDeleted();
85
+ const res = await this.serverClient.request({
86
+ method: 'POST',
87
+ path: '/blobstore',
88
+ body: (0, pocket_ic_client_types_1.encodeUploadBlobRequest)(req),
89
+ });
90
+ const body = await res.text();
91
+ return (0, pocket_ic_client_types_1.decodeUploadBlobResponse)(body);
92
+ }
93
+ async setStableMemory(req) {
94
+ this.assertInstanceNotDeleted();
95
+ await this.serverClient.jsonPost({
96
+ path: `${this.instancePath}/update/set_stable_memory`,
97
+ body: (0, pocket_ic_client_types_1.encodeSetStableMemoryRequest)(req),
98
+ });
99
+ }
100
+ async getStableMemory(req) {
101
+ this.assertInstanceNotDeleted();
102
+ const res = await this.post('/read/get_stable_memory', (0, pocket_ic_client_types_1.encodeGetStableMemoryRequest)(req));
103
+ return (0, pocket_ic_client_types_1.decodeGetStableMemoryResponse)(res);
104
+ }
105
+ async getPendingHttpsOutcalls() {
106
+ this.assertInstanceNotDeleted();
107
+ const res = await this.get('/read/get_canister_http');
108
+ return (0, pocket_ic_client_types_1.decodeGetPendingHttpsOutcallsResponse)(res);
109
+ }
110
+ async mockPendingHttpsOutcall(req) {
111
+ this.assertInstanceNotDeleted();
112
+ await this.post('/update/mock_canister_http', (0, pocket_ic_client_types_1.encodeMockPendingHttpsOutcallRequest)(req));
113
+ }
114
+ async updateCall(req) {
115
+ this.assertInstanceNotDeleted();
116
+ const res = await this.submitCall(req);
117
+ return await this.awaitCall(res);
118
+ }
119
+ async queryCall(req) {
120
+ this.assertInstanceNotDeleted();
121
+ const res = await this.post('/read/query', (0, pocket_ic_client_types_1.encodeCanisterCallRequest)(req));
122
+ return (0, pocket_ic_client_types_1.decodeCanisterCallResponse)(res);
123
+ }
124
+ async submitCall(req) {
125
+ this.assertInstanceNotDeleted();
126
+ const res = await this.post('/update/submit_ingress_message', (0, pocket_ic_client_types_1.encodeSubmitCanisterCallRequest)(req));
127
+ return (0, pocket_ic_client_types_1.decodeSubmitCanisterCallResponse)(res);
128
+ }
129
+ async awaitCall(req) {
130
+ this.assertInstanceNotDeleted();
131
+ const res = await this.post('/update/await_ingress_message', (0, pocket_ic_client_types_1.encodeAwaitCanisterCallRequest)(req));
132
+ return (0, pocket_ic_client_types_1.decodeAwaitCanisterCallResponse)(res);
133
+ }
134
+ async post(endpoint, body) {
135
+ return await this.serverClient.jsonPost({
136
+ path: `${this.instancePath}${endpoint}`,
137
+ body,
138
+ });
139
+ }
140
+ async get(endpoint) {
141
+ return await this.serverClient.jsonGet({
142
+ path: `${this.instancePath}${endpoint}`,
143
+ });
144
+ }
145
+ assertInstanceNotDeleted() {
146
+ if (this.isInstanceDeleted) {
147
+ throw new Error('Instance was deleted');
148
+ }
149
+ }
150
+ }
151
+ exports.PocketIcClient = PocketIcClient;
152
+ //# sourceMappingURL=pocket-ic-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pocket-ic-client.js","sourceRoot":"","sources":["../src/pocket-ic-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { IDL } from '@dfinity/candid';
2
+ import { Principal } from '@dfinity/principal';
3
+ import { Identity } from '@dfinity/agent';
4
+ import { PocketIcClient } from './pocket-ic-client';
5
+ import { ActorInterface } from './pocket-ic-actor';
6
+ export interface DeferredActorMethod<Args extends unknown[] = unknown[], Ret = unknown> {
7
+ (...args: Args): Promise<() => Promise<Ret>>;
8
+ }
9
+ export type DeferredActorInterface<T extends ActorInterface<T> = ActorInterface> = {
10
+ [K in keyof T]: DeferredActorMethod<Parameters<T[K]>, ReturnType<T[K]>>;
11
+ };
12
+ export type DeferredActor<T extends ActorInterface<T> = ActorInterface> = DeferredActorInterface<T> & {
13
+ /**
14
+ * @ignore
15
+ */
16
+ new (): DeferredActor<T>;
17
+ /**
18
+ * Set a Principal to be used as sender for all calls to the canister.
19
+ *
20
+ * @param principal The Principal to set.
21
+ *
22
+ * @see [Principal](https://agent-js.icp.xyz/principal/classes/Principal.html)
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * import { PocketIc } from '@dfinity/pic';
27
+ * import { Principal } from '@dfinity/principal';
28
+ * import { _SERVICE, idlFactory } from '../declarations';
29
+ *
30
+ * const wasmPath = resolve('..', '..', 'canister.wasm');
31
+ *
32
+ * const pic = await PocketIc.create();
33
+ * const fixture = await pic.setupCanister<_SERVICE>(idlFactory, wasmPath);
34
+ * const { actor } = fixture;
35
+ *
36
+ * actor.setPrincipal(Principal.anonymous());
37
+ * ```
38
+ */
39
+ setPrincipal(principal: Principal): void;
40
+ /**
41
+ * Set a Principal to be used as sender for all calls to the canister.
42
+ * This is a convenience method over {@link setPrincipal} that accepts an
43
+ * Identity and internally extracts the Principal.
44
+ *
45
+ * @param identity The identity to set.
46
+ *
47
+ * @see [Identity](https://agent-js.icp.xyz/agent/interfaces/Identity.html)
48
+ * @see [Principal](https://agent-js.icp.xyz/principal/classes/Principal.html)
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * import { PocketIc } from '@dfinity/pic';
53
+ * import { AnonymousIdentity } from '@dfinity/agent';
54
+ * import { _SERVICE, idlFactory } from '../declarations';
55
+ *
56
+ * const wasmPath = resolve('..', '..', 'canister.wasm');
57
+ *
58
+ * const pic = await PocketIc.create();
59
+ * const fixture = await pic.setupCanister<_SERVICE>(idlFactory, wasmPath);
60
+ * const { actor } = fixture;
61
+ *
62
+ * actor.setIdentity(new AnonymousIdentity());
63
+ * ```
64
+ */
65
+ setIdentity(identity: Identity): void;
66
+ };
67
+ export declare function createDeferredActorClass<T extends ActorInterface<T> = ActorInterface>(interfaceFactory: IDL.InterfaceFactory, canisterId: Principal, pocketIcClient: PocketIcClient): DeferredActor<T>;