@airgap/icp 0.13.15-beta.1 → 0.13.15-beta.3
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.
- package/package.json +8 -6
- package/v1/block-explorer/ICPBlockExplorer.d.ts +1 -1
- package/v1/block-explorer/ICPBlockExplorer.js +16 -49
- package/v1/block-explorer/ICPBlockExplorer.js.map +1 -1
- package/v1/index.d.ts +2 -2
- package/v1/index.js +7 -5
- package/v1/index.js.map +1 -1
- package/v1/module/ICPModule.d.ts +2 -4
- package/v1/module/ICPModule.js +53 -94
- package/v1/module/ICPModule.js.map +1 -1
- package/v1/module.js +1 -1
- package/v1/module.js.map +1 -1
- package/v1/protocol/ICPGovernance.d.ts +38 -0
- package/v1/protocol/ICPGovernance.js +748 -0
- package/v1/protocol/ICPGovernance.js.map +1 -0
- package/v1/protocol/ICPImplementation.d.ts +27 -5
- package/v1/protocol/ICPImplementation.js +368 -250
- package/v1/protocol/ICPImplementation.js.map +1 -1
- package/v1/protocol/ICPProtocol.d.ts +33 -8
- package/v1/protocol/ICPProtocol.js +508 -322
- package/v1/protocol/ICPProtocol.js.map +1 -1
- package/v1/protocol/icrc/CkBTCProtocol.js +138 -225
- package/v1/protocol/icrc/CkBTCProtocol.js.map +1 -1
- package/v1/protocol/icrc/ICRC1Protocol.d.ts +4 -4
- package/v1/protocol/icrc/ICRC1Protocol.js +338 -553
- package/v1/protocol/icrc/ICRC1Protocol.js.map +1 -1
- package/v1/serializer/v3/schemas/converter/transaction-converter.js +17 -4
- package/v1/serializer/v3/schemas/converter/transaction-converter.js.map +1 -1
- package/v1/serializer/v3/schemas/generated/transaction-sign-request-icp.json +35 -6
- package/v1/serializer/v3/serializer-companion.js +86 -144
- package/v1/serializer/v3/serializer-companion.js.map +1 -1
- package/v1/serializer/v3/validators/transaction-validator.js +22 -60
- package/v1/serializer/v3/validators/transaction-validator.js.map +1 -1
- package/v1/serializer/v3/validators/validators.js +19 -58
- package/v1/serializer/v3/validators/validators.js.map +1 -1
- package/v1/types/governance.d.ts +2 -0
- package/v1/types/governance.js +268 -210
- package/v1/types/governance.js.map +1 -1
- package/v1/types/icrc/ledger.js +22 -23
- package/v1/types/icrc/ledger.js.map +1 -1
- package/v1/types/ledger.d.ts +1 -0
- package/v1/types/ledger.js +37 -38
- package/v1/types/ledger.js.map +1 -1
- package/v1/types/management_idl.js +6 -7
- package/v1/types/management_idl.js.map +1 -1
- package/v1/types/protocol.d.ts +2 -1
- package/v1/types/transaction.d.ts +21 -3
- package/v1/types/transaction.js +28 -0
- package/v1/types/transaction.js.map +1 -1
- package/v1/utils/account.js +42 -70
- package/v1/utils/account.js.map +1 -1
- package/v1/utils/actor.js +139 -322
- package/v1/utils/actor.js.map +1 -1
- package/v1/utils/auth.js +44 -134
- package/v1/utils/auth.js.map +1 -1
- package/v1/utils/bls.js +41 -109
- package/v1/utils/bls.js.map +1 -1
- package/v1/utils/buffer.js +47 -111
- package/v1/utils/buffer.js.map +1 -1
- package/v1/utils/cbor.js +50 -85
- package/v1/utils/cbor.js.map +1 -1
- package/v1/utils/certificate.js +116 -238
- package/v1/utils/certificate.js.map +1 -1
- package/v1/utils/convert.d.ts +1 -1
- package/v1/utils/convert.js +29 -49
- package/v1/utils/convert.js.map +1 -1
- package/v1/utils/der.js +37 -35
- package/v1/utils/der.js.map +1 -1
- package/v1/utils/errors.js +10 -30
- package/v1/utils/errors.js.map +1 -1
- package/v1/utils/hdkey.js +33 -33
- package/v1/utils/hdkey.js.map +1 -1
- package/v1/utils/http.d.ts +1 -1
- package/v1/utils/http.js +202 -426
- package/v1/utils/http.js.map +1 -1
- package/v1/utils/icrc1.js +24 -41
- package/v1/utils/icrc1.js.map +1 -1
- package/v1/utils/idl.js +780 -1159
- package/v1/utils/idl.js.map +1 -1
- package/v1/utils/leb128.js +29 -30
- package/v1/utils/leb128.js.map +1 -1
- package/v1/utils/polling.js +84 -234
- package/v1/utils/polling.js.map +1 -1
- package/v1/utils/principal.js +78 -126
- package/v1/utils/principal.js.map +1 -1
- package/v1/utils/secp256k1.js +68 -134
- package/v1/utils/secp256k1.js.map +1 -1
- package/v1/utils/transaction.js +7 -7
- package/v1/utils/transaction.js.map +1 -1
package/v1/utils/actor.js
CHANGED
|
@@ -1,30 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
|
-
var __assign = (this && this.__assign) || function () {
|
|
18
|
-
__assign = Object.assign || function(t) {
|
|
19
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
-
s = arguments[i];
|
|
21
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
-
t[p] = s[p];
|
|
23
|
-
}
|
|
24
|
-
return t;
|
|
25
|
-
};
|
|
26
|
-
return __assign.apply(this, arguments);
|
|
27
|
-
};
|
|
28
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
29
3
|
if (k2 === undefined) k2 = k;
|
|
30
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -57,84 +31,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
57
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
58
32
|
});
|
|
59
33
|
};
|
|
60
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
61
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
62
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
63
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
64
|
-
function step(op) {
|
|
65
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
66
|
-
while (_) try {
|
|
67
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
68
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
69
|
-
switch (op[0]) {
|
|
70
|
-
case 0: case 1: t = op; break;
|
|
71
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
72
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
73
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
74
|
-
default:
|
|
75
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
76
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
77
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
78
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
79
|
-
if (t[2]) _.ops.pop();
|
|
80
|
-
_.trys.pop(); continue;
|
|
81
|
-
}
|
|
82
|
-
op = body.call(thisArg, _);
|
|
83
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
84
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
88
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
89
|
-
if (!m) return o;
|
|
90
|
-
var i = m.call(o), r, ar = [], e;
|
|
91
|
-
try {
|
|
92
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
93
|
-
}
|
|
94
|
-
catch (error) { e = { error: error }; }
|
|
95
|
-
finally {
|
|
96
|
-
try {
|
|
97
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
98
|
-
}
|
|
99
|
-
finally { if (e) throw e.error; }
|
|
100
|
-
}
|
|
101
|
-
return ar;
|
|
102
|
-
};
|
|
103
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
104
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
105
|
-
if (ar || !(i in from)) {
|
|
106
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
107
|
-
ar[i] = from[i];
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
111
|
-
};
|
|
112
|
-
var __values = (this && this.__values) || function(o) {
|
|
113
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
114
|
-
if (m) return m.call(o);
|
|
115
|
-
if (o && typeof o.length === "number") return {
|
|
116
|
-
next: function () {
|
|
117
|
-
if (o && i >= o.length) o = void 0;
|
|
118
|
-
return { value: o && o[i++], done: !o };
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
122
|
-
};
|
|
123
34
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
124
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
125
36
|
};
|
|
126
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
127
38
|
exports.Actor = exports.CanisterInstallMode = exports.UpdateCallRejectedError = exports.QueryCallRejectedError = exports.ActorCallError = exports.getManagementCanister = exports.getDefaultAgent = void 0;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
39
|
+
const buffer_1 = require("buffer/");
|
|
40
|
+
const buffer_2 = require("./buffer");
|
|
41
|
+
const http_1 = require("./http");
|
|
42
|
+
const principal_1 = require("./principal");
|
|
43
|
+
const IDL = __importStar(require("./idl"));
|
|
44
|
+
const polling_1 = require("./polling");
|
|
45
|
+
const management_idl_1 = __importDefault(require("../types/management_idl"));
|
|
46
|
+
const errors_1 = require("./errors");
|
|
136
47
|
function getDefaultAgent() {
|
|
137
|
-
|
|
48
|
+
const agent = typeof window === 'undefined'
|
|
138
49
|
? typeof global === 'undefined'
|
|
139
50
|
? typeof self === 'undefined'
|
|
140
51
|
? undefined
|
|
@@ -149,66 +60,57 @@ function getDefaultAgent() {
|
|
|
149
60
|
exports.getDefaultAgent = getDefaultAgent;
|
|
150
61
|
function getManagementCanister(config) {
|
|
151
62
|
function transform(_methodName, args, _callConfig) {
|
|
152
|
-
|
|
153
|
-
|
|
63
|
+
const first = args[0];
|
|
64
|
+
let effectiveCanisterId = principal_1.Principal.fromHex('');
|
|
154
65
|
if (first && typeof first === 'object' && first.canister_id) {
|
|
155
66
|
effectiveCanisterId = principal_1.Principal.from(first.canister_id);
|
|
156
67
|
}
|
|
157
|
-
return { effectiveCanisterId
|
|
68
|
+
return { effectiveCanisterId };
|
|
158
69
|
}
|
|
159
|
-
return Actor.createActor(management_idl_1.default,
|
|
70
|
+
return Actor.createActor(management_idl_1.default, Object.assign(Object.assign(Object.assign({}, config), { canisterId: principal_1.Principal.fromHex('') }), {
|
|
160
71
|
callTransform: transform,
|
|
161
72
|
queryTransform: transform
|
|
162
73
|
}));
|
|
163
74
|
}
|
|
164
75
|
exports.getManagementCanister = getManagementCanister;
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
]
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
return _this;
|
|
76
|
+
class ActorCallError extends errors_1.AgentError {
|
|
77
|
+
constructor(canisterId, methodName, type, props) {
|
|
78
|
+
super([
|
|
79
|
+
`Call failed:`,
|
|
80
|
+
` Canister: ${canisterId.toText()}`,
|
|
81
|
+
` Method: ${methodName} (${type})`,
|
|
82
|
+
...Object.getOwnPropertyNames(props).map((n) => ` "${n}": ${JSON.stringify(props[n])}`)
|
|
83
|
+
].join('\n'));
|
|
84
|
+
this.canisterId = canisterId;
|
|
85
|
+
this.methodName = methodName;
|
|
86
|
+
this.type = type;
|
|
87
|
+
this.props = props;
|
|
178
88
|
}
|
|
179
|
-
|
|
180
|
-
}(errors_1.AgentError));
|
|
89
|
+
}
|
|
181
90
|
exports.ActorCallError = ActorCallError;
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
function QueryCallRejectedError(canisterId, methodName, result) {
|
|
185
|
-
var _this = this;
|
|
91
|
+
class QueryCallRejectedError extends ActorCallError {
|
|
92
|
+
constructor(canisterId, methodName, result) {
|
|
186
93
|
var _a;
|
|
187
|
-
|
|
94
|
+
super(canisterId, methodName, 'query', {
|
|
188
95
|
Status: result.status,
|
|
189
|
-
Code: (_a = http_1.ReplicaRejectCode[result.reject_code]) !== null && _a !== void 0 ? _a :
|
|
96
|
+
Code: (_a = http_1.ReplicaRejectCode[result.reject_code]) !== null && _a !== void 0 ? _a : `Unknown Code "${result.reject_code}"`,
|
|
190
97
|
Message: result.reject_message
|
|
191
|
-
})
|
|
192
|
-
|
|
193
|
-
return _this;
|
|
98
|
+
});
|
|
99
|
+
this.result = result;
|
|
194
100
|
}
|
|
195
|
-
|
|
196
|
-
}(ActorCallError));
|
|
101
|
+
}
|
|
197
102
|
exports.QueryCallRejectedError = QueryCallRejectedError;
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
var _this = _super.call(this, canisterId, methodName, 'update', {
|
|
103
|
+
class UpdateCallRejectedError extends ActorCallError {
|
|
104
|
+
constructor(canisterId, methodName, requestId, response) {
|
|
105
|
+
super(canisterId, methodName, 'update', {
|
|
202
106
|
'Request ID': (0, buffer_2.toHex)(requestId),
|
|
203
107
|
'HTTP status code': response.status.toString(),
|
|
204
108
|
'HTTP status text': response.statusText
|
|
205
|
-
})
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
return _this;
|
|
109
|
+
});
|
|
110
|
+
this.requestId = requestId;
|
|
111
|
+
this.response = response;
|
|
209
112
|
}
|
|
210
|
-
|
|
211
|
-
}(ActorCallError));
|
|
113
|
+
}
|
|
212
114
|
exports.UpdateCallRejectedError = UpdateCallRejectedError;
|
|
213
115
|
/**
|
|
214
116
|
* The mode used when installing a canister.
|
|
@@ -219,13 +121,13 @@ var CanisterInstallMode;
|
|
|
219
121
|
CanisterInstallMode["Reinstall"] = "reinstall";
|
|
220
122
|
CanisterInstallMode["Upgrade"] = "upgrade";
|
|
221
123
|
})(CanisterInstallMode = exports.CanisterInstallMode || (exports.CanisterInstallMode = {}));
|
|
222
|
-
|
|
124
|
+
const metadataSymbol = Symbol.for('ic-agent-metadata');
|
|
223
125
|
/**
|
|
224
126
|
* An actor base class. An actor is an object containing only functions that will
|
|
225
127
|
* return a promise. These functions are derived from the IDL definition.
|
|
226
128
|
*/
|
|
227
|
-
|
|
228
|
-
|
|
129
|
+
class Actor {
|
|
130
|
+
constructor(metadata) {
|
|
229
131
|
this[metadataSymbol] = Object.freeze(metadata);
|
|
230
132
|
}
|
|
231
133
|
/**
|
|
@@ -233,117 +135,77 @@ var Actor = /** @class */ (function () {
|
|
|
233
135
|
* the default agent (global.ic.agent).
|
|
234
136
|
* @param actor The actor to get the agent of.
|
|
235
137
|
*/
|
|
236
|
-
|
|
138
|
+
static agentOf(actor) {
|
|
237
139
|
return actor[metadataSymbol].config.agent;
|
|
238
|
-
}
|
|
140
|
+
}
|
|
239
141
|
/**
|
|
240
142
|
* Get the interface of an actor, in the form of an instance of a Service.
|
|
241
143
|
* @param actor The actor to get the interface of.
|
|
242
144
|
*/
|
|
243
|
-
|
|
145
|
+
static interfaceOf(actor) {
|
|
244
146
|
return actor[metadataSymbol].service;
|
|
245
|
-
}
|
|
246
|
-
|
|
147
|
+
}
|
|
148
|
+
static canisterIdOf(actor) {
|
|
247
149
|
return principal_1.Principal.from(actor[metadataSymbol].config.canisterId);
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
arg: arg,
|
|
263
|
-
wasm_module: wasmModule,
|
|
264
|
-
canister_id: canisterId
|
|
265
|
-
})];
|
|
266
|
-
case 1:
|
|
267
|
-
_b.sent();
|
|
268
|
-
return [2 /*return*/];
|
|
269
|
-
}
|
|
150
|
+
}
|
|
151
|
+
static install(fields, config) {
|
|
152
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
153
|
+
const mode = fields.mode === undefined ? CanisterInstallMode.Install : fields.mode;
|
|
154
|
+
// Need to transform the arg into a number array.
|
|
155
|
+
const arg = fields.arg ? [...new Uint8Array(fields.arg)] : [];
|
|
156
|
+
// Same for module.
|
|
157
|
+
const wasmModule = [...new Uint8Array(fields.module)];
|
|
158
|
+
const canisterId = typeof config.canisterId === 'string' ? principal_1.Principal.fromText(config.canisterId) : config.canisterId;
|
|
159
|
+
yield getManagementCanister(config).install_code({
|
|
160
|
+
mode: { [mode]: null },
|
|
161
|
+
arg,
|
|
162
|
+
wasm_module: wasmModule,
|
|
163
|
+
canister_id: canisterId
|
|
270
164
|
});
|
|
271
165
|
});
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
case 0: return [4 /*yield*/, getManagementCanister(config || {}).provisional_create_canister_with_cycles({
|
|
279
|
-
amount: [],
|
|
280
|
-
settings: []
|
|
281
|
-
})];
|
|
282
|
-
case 1:
|
|
283
|
-
canisterId = (_a.sent()).canister_id;
|
|
284
|
-
return [2 /*return*/, canisterId];
|
|
285
|
-
}
|
|
166
|
+
}
|
|
167
|
+
static createCanister(config) {
|
|
168
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
169
|
+
const { canister_id: canisterId } = yield getManagementCanister(config || {}).provisional_create_canister_with_cycles({
|
|
170
|
+
amount: [],
|
|
171
|
+
settings: []
|
|
286
172
|
});
|
|
173
|
+
return canisterId;
|
|
287
174
|
});
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
case 0: return [4 /*yield*/, this.createCanister(config)];
|
|
295
|
-
case 1:
|
|
296
|
-
canisterId = _a.sent();
|
|
297
|
-
return [4 /*yield*/, this.install(__assign({}, fields), __assign(__assign({}, config), { canisterId: canisterId }))];
|
|
298
|
-
case 2:
|
|
299
|
-
_a.sent();
|
|
300
|
-
return [2 /*return*/, this.createActor(interfaceFactory, __assign(__assign({}, config), { canisterId: canisterId }))];
|
|
301
|
-
}
|
|
302
|
-
});
|
|
175
|
+
}
|
|
176
|
+
static createAndInstallCanister(interfaceFactory, fields, config) {
|
|
177
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
178
|
+
const canisterId = yield this.createCanister(config);
|
|
179
|
+
yield this.install(Object.assign({}, fields), Object.assign(Object.assign({}, config), { canisterId }));
|
|
180
|
+
return this.createActor(interfaceFactory, Object.assign(Object.assign({}, config), { canisterId }));
|
|
303
181
|
});
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
}) || this;
|
|
317
|
-
try {
|
|
318
|
-
for (var _b = __values(service._fields), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
319
|
-
var _d = __read(_c.value, 2), methodName = _d[0], func = _d[1];
|
|
320
|
-
_this[methodName] = _createActorMethod(_this, methodName, func, config.blsVerify);
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
324
|
-
finally {
|
|
325
|
-
try {
|
|
326
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
327
|
-
}
|
|
328
|
-
finally { if (e_1) throw e_1.error; }
|
|
182
|
+
}
|
|
183
|
+
static createActorClass(interfaceFactory) {
|
|
184
|
+
const service = interfaceFactory({ IDL });
|
|
185
|
+
class CanisterActor extends Actor {
|
|
186
|
+
constructor(config) {
|
|
187
|
+
const canisterId = typeof config.canisterId === 'string' ? principal_1.Principal.fromText(config.canisterId) : config.canisterId;
|
|
188
|
+
super({
|
|
189
|
+
config: Object.assign(Object.assign(Object.assign({}, DEFAULT_ACTOR_CONFIG), config), { canisterId }),
|
|
190
|
+
service
|
|
191
|
+
});
|
|
192
|
+
for (const [methodName, func] of service._fields) {
|
|
193
|
+
this[methodName] = _createActorMethod(this, methodName, func, config.blsVerify);
|
|
329
194
|
}
|
|
330
|
-
return _this;
|
|
331
195
|
}
|
|
332
|
-
|
|
333
|
-
}(Actor));
|
|
196
|
+
}
|
|
334
197
|
return CanisterActor;
|
|
335
|
-
}
|
|
336
|
-
|
|
198
|
+
}
|
|
199
|
+
static createActor(interfaceFactory, configuration) {
|
|
337
200
|
return new (this.createActorClass(interfaceFactory))(configuration);
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
}());
|
|
201
|
+
}
|
|
202
|
+
}
|
|
341
203
|
exports.Actor = Actor;
|
|
342
204
|
// IDL functions can have multiple return values, so decoding always
|
|
343
205
|
// produces an array. Ensure that functions with single or zero return
|
|
344
206
|
// values behave as expected.
|
|
345
207
|
function decodeReturnValue(types, msg) {
|
|
346
|
-
|
|
208
|
+
const returnValues = IDL.decode(types, buffer_1.Buffer.from(msg));
|
|
347
209
|
switch (returnValues.length) {
|
|
348
210
|
case 0:
|
|
349
211
|
return undefined;
|
|
@@ -353,106 +215,61 @@ function decodeReturnValue(types, msg) {
|
|
|
353
215
|
return returnValues;
|
|
354
216
|
}
|
|
355
217
|
}
|
|
356
|
-
|
|
218
|
+
const DEFAULT_ACTOR_CONFIG = {
|
|
357
219
|
pollingStrategyFactory: polling_1.defaultStrategy
|
|
358
220
|
};
|
|
359
221
|
function _createActorMethod(actor, methodName, func, blsVerify) {
|
|
360
|
-
|
|
361
|
-
var caller;
|
|
222
|
+
let caller;
|
|
362
223
|
if (func.annotations.includes('query')) {
|
|
363
|
-
caller = function (
|
|
364
|
-
var
|
|
365
|
-
|
|
366
|
-
|
|
224
|
+
caller = (options, ...args) => __awaiter(this, void 0, void 0, function* () {
|
|
225
|
+
var _a, _b;
|
|
226
|
+
// First, if there's a config transformation, call it.
|
|
227
|
+
options = Object.assign(Object.assign({}, options), (_b = (_a = actor[metadataSymbol].config).queryTransform) === null || _b === void 0 ? void 0 : _b.call(_a, methodName, args, Object.assign(Object.assign({}, actor[metadataSymbol].config), options)));
|
|
228
|
+
const agent = options.agent || actor[metadataSymbol].config.agent || getDefaultAgent();
|
|
229
|
+
const cid = principal_1.Principal.from(options.canisterId || actor[metadataSymbol].config.canisterId);
|
|
230
|
+
const arg = IDL.encode(func.argTypes, args);
|
|
231
|
+
const result = yield agent.query(cid, { methodName, arg });
|
|
232
|
+
switch (result.status) {
|
|
233
|
+
case "rejected" /* QueryResponseStatus.Rejected */:
|
|
234
|
+
throw new QueryCallRejectedError(cid, methodName, result);
|
|
235
|
+
case "replied" /* QueryResponseStatus.Replied */:
|
|
236
|
+
return decodeReturnValue(func.retTypes, result.reply.arg);
|
|
367
237
|
}
|
|
368
|
-
|
|
369
|
-
var agent, cid, arg, result;
|
|
370
|
-
var _a, _b;
|
|
371
|
-
return __generator(this, function (_c) {
|
|
372
|
-
switch (_c.label) {
|
|
373
|
-
case 0:
|
|
374
|
-
// First, if there's a config transformation, call it.
|
|
375
|
-
options = __assign(__assign({}, options), (_b = (_a = actor[metadataSymbol].config).queryTransform) === null || _b === void 0 ? void 0 : _b.call(_a, methodName, args, __assign(__assign({}, actor[metadataSymbol].config), options)));
|
|
376
|
-
agent = options.agent || actor[metadataSymbol].config.agent || getDefaultAgent();
|
|
377
|
-
cid = principal_1.Principal.from(options.canisterId || actor[metadataSymbol].config.canisterId);
|
|
378
|
-
arg = IDL.encode(func.argTypes, args);
|
|
379
|
-
return [4 /*yield*/, agent.query(cid, { methodName: methodName, arg: arg })];
|
|
380
|
-
case 1:
|
|
381
|
-
result = _c.sent();
|
|
382
|
-
switch (result.status) {
|
|
383
|
-
case "rejected" /* QueryResponseStatus.Rejected */:
|
|
384
|
-
throw new QueryCallRejectedError(cid, methodName, result);
|
|
385
|
-
case "replied" /* QueryResponseStatus.Replied */:
|
|
386
|
-
return [2 /*return*/, decodeReturnValue(func.retTypes, result.reply.arg)];
|
|
387
|
-
}
|
|
388
|
-
return [2 /*return*/];
|
|
389
|
-
}
|
|
390
|
-
});
|
|
391
|
-
});
|
|
392
|
-
};
|
|
238
|
+
});
|
|
393
239
|
}
|
|
394
240
|
else {
|
|
395
|
-
caller = function (
|
|
396
|
-
var
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
agent = options.agent || actor[metadataSymbol].config.agent || getDefaultAgent();
|
|
409
|
-
_a = __assign(__assign(__assign({}, DEFAULT_ACTOR_CONFIG), actor[metadataSymbol].config), options), canisterId = _a.canisterId, effectiveCanisterId = _a.effectiveCanisterId, pollingStrategyFactory = _a.pollingStrategyFactory;
|
|
410
|
-
cid = principal_1.Principal.from(canisterId);
|
|
411
|
-
ecid = effectiveCanisterId !== undefined ? principal_1.Principal.from(effectiveCanisterId) : cid;
|
|
412
|
-
arg = IDL.encode(func.argTypes, args);
|
|
413
|
-
return [4 /*yield*/, agent.call(cid, {
|
|
414
|
-
methodName: methodName,
|
|
415
|
-
arg: arg,
|
|
416
|
-
effectiveCanisterId: ecid
|
|
417
|
-
})];
|
|
418
|
-
case 1:
|
|
419
|
-
_b = _e.sent(), requestId = _b.requestId, response = _b.response;
|
|
420
|
-
if (!response.ok) {
|
|
421
|
-
throw new UpdateCallRejectedError(cid, methodName, requestId, response);
|
|
422
|
-
}
|
|
423
|
-
pollStrategy = pollingStrategyFactory();
|
|
424
|
-
return [4 /*yield*/, (0, polling_1.pollForResponse)(agent, ecid, requestId, pollStrategy, blsVerify)];
|
|
425
|
-
case 2:
|
|
426
|
-
responseBytes = _e.sent();
|
|
427
|
-
if (responseBytes !== undefined) {
|
|
428
|
-
return [2 /*return*/, decodeReturnValue(func.retTypes, responseBytes)];
|
|
429
|
-
}
|
|
430
|
-
else if (func.retTypes.length === 0) {
|
|
431
|
-
return [2 /*return*/, undefined];
|
|
432
|
-
}
|
|
433
|
-
else {
|
|
434
|
-
throw new Error("Call was returned undefined, but type [".concat(func.retTypes.join(','), "]."));
|
|
435
|
-
}
|
|
436
|
-
return [2 /*return*/];
|
|
437
|
-
}
|
|
438
|
-
});
|
|
241
|
+
caller = (options, ...args) => __awaiter(this, void 0, void 0, function* () {
|
|
242
|
+
var _c, _d;
|
|
243
|
+
// First, if there's a config transformation, call it.
|
|
244
|
+
options = Object.assign(Object.assign({}, options), (_d = (_c = actor[metadataSymbol].config).callTransform) === null || _d === void 0 ? void 0 : _d.call(_c, methodName, args, Object.assign(Object.assign({}, actor[metadataSymbol].config), options)));
|
|
245
|
+
const agent = options.agent || actor[metadataSymbol].config.agent || getDefaultAgent();
|
|
246
|
+
const { canisterId, effectiveCanisterId, pollingStrategyFactory } = Object.assign(Object.assign(Object.assign({}, DEFAULT_ACTOR_CONFIG), actor[metadataSymbol].config), options);
|
|
247
|
+
const cid = principal_1.Principal.from(canisterId);
|
|
248
|
+
const ecid = effectiveCanisterId !== undefined ? principal_1.Principal.from(effectiveCanisterId) : cid;
|
|
249
|
+
const arg = IDL.encode(func.argTypes, args);
|
|
250
|
+
const { requestId, response } = yield agent.call(cid, {
|
|
251
|
+
methodName,
|
|
252
|
+
arg,
|
|
253
|
+
effectiveCanisterId: ecid
|
|
439
254
|
});
|
|
440
|
-
|
|
255
|
+
if (!response.ok) {
|
|
256
|
+
throw new UpdateCallRejectedError(cid, methodName, requestId, response);
|
|
257
|
+
}
|
|
258
|
+
const pollStrategy = pollingStrategyFactory();
|
|
259
|
+
const responseBytes = yield (0, polling_1.pollForResponse)(agent, ecid, requestId, pollStrategy, blsVerify);
|
|
260
|
+
if (responseBytes !== undefined) {
|
|
261
|
+
return decodeReturnValue(func.retTypes, responseBytes);
|
|
262
|
+
}
|
|
263
|
+
else if (func.retTypes.length === 0) {
|
|
264
|
+
return undefined;
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
throw new Error(`Call was returned undefined, but type [${func.retTypes.join(',')}].`);
|
|
268
|
+
}
|
|
269
|
+
});
|
|
441
270
|
}
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
445
|
-
args[_i] = arguments[_i];
|
|
446
|
-
}
|
|
447
|
-
return caller.apply(void 0, __spreadArray([{}], __read(args), false));
|
|
448
|
-
};
|
|
449
|
-
handler.withOptions = function (options) { return function () {
|
|
450
|
-
var args = [];
|
|
451
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
452
|
-
args[_i] = arguments[_i];
|
|
453
|
-
}
|
|
454
|
-
return caller.apply(void 0, __spreadArray([options], __read(args), false));
|
|
455
|
-
}; };
|
|
271
|
+
const handler = (...args) => caller({}, ...args);
|
|
272
|
+
handler.withOptions = (options) => (...args) => caller(options, ...args);
|
|
456
273
|
return handler;
|
|
457
274
|
}
|
|
458
275
|
//# sourceMappingURL=actor.js.map
|
package/v1/utils/actor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actor.js","sourceRoot":"","sources":["../../../src/v1/utils/actor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"actor.js","sourceRoot":"","sources":["../../../src/v1/utils/actor.ts"],"names":[],"mappings":"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"}
|