@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/auth.js
CHANGED
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -19,33 +8,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
19
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
9
|
});
|
|
21
10
|
};
|
|
22
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
-
function step(op) {
|
|
27
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (_) try {
|
|
29
|
-
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;
|
|
30
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
-
switch (op[0]) {
|
|
32
|
-
case 0: case 1: t = op; break;
|
|
33
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
-
default:
|
|
37
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
-
if (t[2]) _.ops.pop();
|
|
42
|
-
_.trys.pop(); continue;
|
|
43
|
-
}
|
|
44
|
-
op = body.call(thisArg, _);
|
|
45
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
11
|
var __rest = (this && this.__rest) || function (s, e) {
|
|
50
12
|
var t = {};
|
|
51
13
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
@@ -57,42 +19,17 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
57
19
|
}
|
|
58
20
|
return t;
|
|
59
21
|
};
|
|
60
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
61
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
62
|
-
if (!m) return o;
|
|
63
|
-
var i = m.call(o), r, ar = [], e;
|
|
64
|
-
try {
|
|
65
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
66
|
-
}
|
|
67
|
-
catch (error) { e = { error: error }; }
|
|
68
|
-
finally {
|
|
69
|
-
try {
|
|
70
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
71
|
-
}
|
|
72
|
-
finally { if (e) throw e.error; }
|
|
73
|
-
}
|
|
74
|
-
return ar;
|
|
75
|
-
};
|
|
76
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
77
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
78
|
-
if (ar || !(i in from)) {
|
|
79
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
80
|
-
ar[i] = from[i];
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
84
|
-
};
|
|
85
22
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
86
23
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
87
24
|
};
|
|
88
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
89
26
|
exports.createIdentityDescriptor = exports.AnonymousIdentity = exports.SignIdentity = exports.requestIdOf = exports.hash = exports.hashValue = exports.RequestStatusResponseStatus = void 0;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
27
|
+
const buffer_1 = require("./buffer");
|
|
28
|
+
const js_sha256_1 = require("js-sha256");
|
|
29
|
+
const borc_1 = __importDefault(require("borc"));
|
|
30
|
+
const leb128_1 = require("./leb128");
|
|
31
|
+
const principal_1 = require("./principal");
|
|
32
|
+
const domainSeparator = new TextEncoder().encode('\x0Aic-request');
|
|
96
33
|
var RequestStatusResponseStatus;
|
|
97
34
|
(function (RequestStatusResponseStatus) {
|
|
98
35
|
RequestStatusResponseStatus["Received"] = "received";
|
|
@@ -121,8 +58,8 @@ function hashValue(value) {
|
|
|
121
58
|
return hash(value);
|
|
122
59
|
}
|
|
123
60
|
else if (Array.isArray(value)) {
|
|
124
|
-
|
|
125
|
-
return hash(
|
|
61
|
+
const vals = value.map(hashValue);
|
|
62
|
+
return hash((0, buffer_1.concat)(...vals));
|
|
126
63
|
}
|
|
127
64
|
else if (value && typeof value === 'object' && value._isPrincipal) {
|
|
128
65
|
return hash(value.toUint8Array());
|
|
@@ -140,10 +77,10 @@ function hashValue(value) {
|
|
|
140
77
|
// So we want to try all the high-assurance type guards before this 'probable' one.
|
|
141
78
|
return hash((0, leb128_1.lebEncode)(value));
|
|
142
79
|
}
|
|
143
|
-
throw Object.assign(new Error(
|
|
80
|
+
throw Object.assign(new Error(`Attempt to hash a value of unsupported type: ${value}`), {
|
|
144
81
|
// include so logs/callers can understand the confusing value.
|
|
145
82
|
// (when stringified in error message, prototype info is lost)
|
|
146
|
-
value
|
|
83
|
+
value
|
|
147
84
|
});
|
|
148
85
|
}
|
|
149
86
|
exports.hashValue = hashValue;
|
|
@@ -155,104 +92,77 @@ function hash(data) {
|
|
|
155
92
|
return js_sha256_1.sha256.create().update(new Uint8Array(data)).arrayBuffer();
|
|
156
93
|
}
|
|
157
94
|
exports.hash = hash;
|
|
158
|
-
|
|
159
|
-
|
|
95
|
+
const hashString = (value) => {
|
|
96
|
+
const encoded = new TextEncoder().encode(value);
|
|
160
97
|
return hash(encoded);
|
|
161
98
|
};
|
|
162
99
|
function requestIdOf(request) {
|
|
163
|
-
|
|
164
|
-
.filter(
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
.map(function (_a) {
|
|
169
|
-
var _b = __read(_a, 2), key = _b[0], value = _b[1];
|
|
170
|
-
var hashedKey = hashString(key);
|
|
171
|
-
var hashedValue = hashValue(value);
|
|
100
|
+
const hashed = Object.entries(request)
|
|
101
|
+
.filter(([, value]) => value !== undefined)
|
|
102
|
+
.map(([key, value]) => {
|
|
103
|
+
const hashedKey = hashString(key);
|
|
104
|
+
const hashedValue = hashValue(value);
|
|
172
105
|
return [hashedKey, hashedValue];
|
|
173
106
|
});
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
var _c = __read(_a, 1), k1 = _c[0];
|
|
177
|
-
var _d = __read(_b, 1), k2 = _d[0];
|
|
107
|
+
const traversed = hashed;
|
|
108
|
+
const sorted = traversed.sort(([k1], [k2]) => {
|
|
178
109
|
return (0, buffer_1.compare)(k1, k2);
|
|
179
110
|
});
|
|
180
|
-
|
|
181
|
-
|
|
111
|
+
const concatenated = (0, buffer_1.concat)(...sorted.map((x) => (0, buffer_1.concat)(...x)));
|
|
112
|
+
const requestId = hash(concatenated);
|
|
182
113
|
return requestId;
|
|
183
114
|
}
|
|
184
115
|
exports.requestIdOf = requestIdOf;
|
|
185
116
|
/**
|
|
186
117
|
* An Identity that can sign blobs.
|
|
187
118
|
*/
|
|
188
|
-
|
|
189
|
-
function SignIdentity() {
|
|
190
|
-
}
|
|
119
|
+
class SignIdentity {
|
|
191
120
|
/**
|
|
192
121
|
* Get the principal represented by this identity. Normally should be a
|
|
193
122
|
* `Principal.selfAuthenticating()`.
|
|
194
123
|
*/
|
|
195
|
-
|
|
124
|
+
getPrincipal() {
|
|
196
125
|
if (!this._principal) {
|
|
197
126
|
this._principal = principal_1.Principal.selfAuthenticating(new Uint8Array(this.getPublicKey().toDer()));
|
|
198
127
|
}
|
|
199
128
|
return this._principal;
|
|
200
|
-
}
|
|
129
|
+
}
|
|
201
130
|
/**
|
|
202
131
|
* Transform a request into a signed version of the request. This is done last
|
|
203
132
|
* after the transforms on the body of a request. The returned object can be
|
|
204
133
|
* anything, but must be serializable to CBOR.
|
|
205
134
|
* @param request - internet computer request to transform
|
|
206
135
|
*/
|
|
207
|
-
|
|
208
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
return
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
case 1:
|
|
217
|
-
requestId = _d.sent();
|
|
218
|
-
_a = [__assign({}, fields)];
|
|
219
|
-
_b = {};
|
|
220
|
-
_c = {
|
|
221
|
-
content: body,
|
|
222
|
-
sender_pubkey: this.getPublicKey().toDer()
|
|
223
|
-
};
|
|
224
|
-
return [4 /*yield*/, this.sign((0, buffer_1.concat)(domainSeparator, requestId))];
|
|
225
|
-
case 2: return [2 /*return*/, __assign.apply(void 0, _a.concat([(_b.body = (_c.sender_sig = _d.sent(),
|
|
226
|
-
_c), _b)]))];
|
|
227
|
-
}
|
|
228
|
-
});
|
|
136
|
+
transformRequest(request) {
|
|
137
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
138
|
+
const { body } = request, fields = __rest(request, ["body"]);
|
|
139
|
+
const requestId = yield requestIdOf(body);
|
|
140
|
+
return Object.assign(Object.assign({}, fields), { body: {
|
|
141
|
+
content: body,
|
|
142
|
+
sender_pubkey: this.getPublicKey().toDer(),
|
|
143
|
+
sender_sig: yield this.sign((0, buffer_1.concat)(domainSeparator, requestId))
|
|
144
|
+
} });
|
|
229
145
|
});
|
|
230
|
-
};
|
|
231
|
-
return SignIdentity;
|
|
232
|
-
}());
|
|
233
|
-
exports.SignIdentity = SignIdentity;
|
|
234
|
-
var AnonymousIdentity = /** @class */ (function () {
|
|
235
|
-
function AnonymousIdentity() {
|
|
236
146
|
}
|
|
237
|
-
|
|
147
|
+
}
|
|
148
|
+
exports.SignIdentity = SignIdentity;
|
|
149
|
+
class AnonymousIdentity {
|
|
150
|
+
getPrincipal() {
|
|
238
151
|
return principal_1.Principal.anonymous();
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
242
|
-
return
|
|
243
|
-
return [2 /*return*/, __assign(__assign({}, request), { body: { content: request.body } })];
|
|
244
|
-
});
|
|
152
|
+
}
|
|
153
|
+
transformRequest(request) {
|
|
154
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
155
|
+
return Object.assign(Object.assign({}, request), { body: { content: request.body } });
|
|
245
156
|
});
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
}());
|
|
157
|
+
}
|
|
158
|
+
}
|
|
249
159
|
exports.AnonymousIdentity = AnonymousIdentity;
|
|
250
160
|
/**
|
|
251
161
|
* Create an IdentityDescriptor from a @dfinity/identity Identity
|
|
252
162
|
* @param identity - identity describe in returned descriptor
|
|
253
163
|
*/
|
|
254
164
|
function createIdentityDescriptor(identity) {
|
|
255
|
-
|
|
165
|
+
const identityIndicator = 'getPublicKey' in identity
|
|
256
166
|
? { type: 'PublicKeyIdentity', publicKey: (0, buffer_1.toHex)(identity.getPublicKey().toDer()) }
|
|
257
167
|
: { type: 'AnonymousIdentity' };
|
|
258
168
|
return identityIndicator;
|
package/v1/utils/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/v1/utils/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/v1/utils/auth.ts"],"names":[],"mappings":"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"}
|