@initia/initia.js 0.0.31 → 0.0.32

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 (44) hide show
  1. package/dist/bundle.js +1 -1
  2. package/dist/bundle.js.map +1 -1
  3. package/dist/bundle.node.js +1 -1
  4. package/dist/bundle.node.js.LICENSE.txt +2 -0
  5. package/dist/bundle.node.js.map +1 -1
  6. package/dist/core/Tx.d.ts +1 -1
  7. package/dist/core/gov/Proposal.d.ts +5 -5
  8. package/dist/core/gov/Proposal.js +6 -12
  9. package/dist/core/gov/Proposal.js.map +1 -1
  10. package/dist/core/move/proposals/ExecuteOperation.d.ts +51 -0
  11. package/dist/core/move/proposals/ExecuteOperation.js +100 -0
  12. package/dist/core/move/proposals/ExecuteOperation.js.map +1 -0
  13. package/dist/core/move/proposals/OperationsProposal.d.ts +57 -0
  14. package/dist/core/move/proposals/OperationsProposal.js +127 -0
  15. package/dist/core/move/proposals/OperationsProposal.js.map +1 -0
  16. package/dist/core/move/proposals/PublishOperation.d.ts +34 -0
  17. package/dist/core/move/proposals/PublishOperation.js +76 -0
  18. package/dist/core/move/proposals/PublishOperation.js.map +1 -0
  19. package/dist/core/move/proposals/index.d.ts +3 -2
  20. package/dist/core/move/proposals/index.js +3 -2
  21. package/dist/core/move/proposals/index.js.map +1 -1
  22. package/dist/key/index.d.ts +1 -0
  23. package/dist/key/index.js +1 -0
  24. package/dist/key/index.js.map +1 -1
  25. package/dist/key/ledger/LedgerKey.d.ts +55 -0
  26. package/dist/key/ledger/LedgerKey.js +377 -0
  27. package/dist/key/ledger/LedgerKey.js.map +1 -0
  28. package/dist/key/ledger/app.d.ts +39 -0
  29. package/dist/key/ledger/app.js +178 -0
  30. package/dist/key/ledger/app.js.map +1 -0
  31. package/dist/key/ledger/constants.d.ts +24 -0
  32. package/dist/key/ledger/constants.js +50 -0
  33. package/dist/key/ledger/constants.js.map +1 -0
  34. package/dist/key/ledger/device.d.ts +11 -0
  35. package/dist/key/ledger/device.js +379 -0
  36. package/dist/key/ledger/device.js.map +1 -0
  37. package/dist/key/ledger/index.d.ts +5 -0
  38. package/dist/key/ledger/index.js +25 -0
  39. package/dist/key/ledger/index.js.map +1 -0
  40. package/dist/key/ledger/types.d.ts +44 -0
  41. package/dist/key/ledger/types.js +3 -0
  42. package/dist/key/ledger/types.js.map +1 -0
  43. package/dist/util/bcs.d.ts +1 -1
  44. package/package.json +9 -2
@@ -0,0 +1,24 @@
1
+ export declare const CLA = 85;
2
+ export declare const CHUNK_SIZE = 250;
3
+ export declare const APP_KEY = "CSM";
4
+ export declare const INS: {
5
+ GET_VERSION: number;
6
+ INS_PUBLIC_KEY_SECP256K1: number;
7
+ SIGN_SECP256K1: number;
8
+ GET_ADDR_SECP256K1: number;
9
+ };
10
+ export declare const PAYLOAD_TYPE: {
11
+ INIT: number;
12
+ ADD: number;
13
+ LAST: number;
14
+ };
15
+ export declare const P1_VALUES: {
16
+ ONLY_RETRIEVE: number;
17
+ SHOW_ADDRESS_IN_DEVICE: number;
18
+ };
19
+ export declare const ERROR_CODE: {
20
+ NoError: number;
21
+ };
22
+ export declare const ERROR_DESCRIPTION: {
23
+ [key: number]: string;
24
+ };
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERROR_DESCRIPTION = exports.ERROR_CODE = exports.P1_VALUES = exports.PAYLOAD_TYPE = exports.INS = exports.APP_KEY = exports.CHUNK_SIZE = exports.CLA = void 0;
4
+ exports.CLA = 0x55;
5
+ exports.CHUNK_SIZE = 250;
6
+ exports.APP_KEY = 'CSM';
7
+ exports.INS = {
8
+ GET_VERSION: 0x00,
9
+ INS_PUBLIC_KEY_SECP256K1: 0x01,
10
+ SIGN_SECP256K1: 0x02,
11
+ GET_ADDR_SECP256K1: 0x04,
12
+ };
13
+ exports.PAYLOAD_TYPE = {
14
+ INIT: 0x00,
15
+ ADD: 0x01,
16
+ LAST: 0x02,
17
+ };
18
+ exports.P1_VALUES = {
19
+ ONLY_RETRIEVE: 0x00,
20
+ SHOW_ADDRESS_IN_DEVICE: 0x01,
21
+ };
22
+ exports.ERROR_CODE = {
23
+ NoError: 0x9000,
24
+ };
25
+ exports.ERROR_DESCRIPTION = {
26
+ 1: 'U2F: Unknown',
27
+ 2: 'U2F: Bad request',
28
+ 3: 'U2F: Configuration unsupported',
29
+ 4: 'U2F: Device Ineligible',
30
+ 5: 'U2F: Timeout',
31
+ 14: 'Timeout',
32
+ 0x9000: 'No errors',
33
+ 0x9001: 'Device is busy',
34
+ 0x6802: 'Error deriving keys',
35
+ 0x6400: 'Execution Error',
36
+ 0x6700: 'Wrong Length',
37
+ 0x6982: 'Empty Buffer',
38
+ 0x6983: 'Output buffer too small',
39
+ 0x6984: 'Data is invalid',
40
+ 0x6985: 'Conditions not satisfied',
41
+ 0x6986: 'Transaction rejected',
42
+ 0x6a80: 'Bad key handle',
43
+ 0x6b00: 'Invalid P1/P2',
44
+ 0x6b0c: 'Ledger is locked',
45
+ 0x6d00: 'Instruction not supported',
46
+ 0x6e00: 'App does not seem to be open',
47
+ 0x6f00: 'Unknown error',
48
+ 0x6f01: 'Sign/verify error',
49
+ };
50
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/key/ledger/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,GAAG,GAAG,IAAI,CAAC;AACX,QAAA,UAAU,GAAG,GAAG,CAAC;AACjB,QAAA,OAAO,GAAG,KAAK,CAAC;AAEhB,QAAA,GAAG,GAAG;IACjB,WAAW,EAAE,IAAI;IACjB,wBAAwB,EAAE,IAAI;IAC9B,cAAc,EAAE,IAAI;IACpB,kBAAkB,EAAE,IAAI;CACzB,CAAC;AAEW,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,IAAI;CACX,CAAC;AAEW,QAAA,SAAS,GAAG;IACvB,aAAa,EAAE,IAAI;IACnB,sBAAsB,EAAE,IAAI;CAC7B,CAAC;AAEW,QAAA,UAAU,GAAG;IACxB,OAAO,EAAE,MAAM;CAChB,CAAC;AAEW,QAAA,iBAAiB,GAA8B;IAC1D,CAAC,EAAE,cAAc;IACjB,CAAC,EAAE,kBAAkB;IACrB,CAAC,EAAE,gCAAgC;IACnC,CAAC,EAAE,wBAAwB;IAC3B,CAAC,EAAE,cAAc;IACjB,EAAE,EAAE,SAAS;IACb,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,qBAAqB;IAC7B,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,yBAAyB;IACjC,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,0BAA0B;IAClC,MAAM,EAAE,sBAAsB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,2BAA2B;IACnC,MAAM,EAAE,8BAA8B;IACtC,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,mBAAmB;CAC5B,CAAC"}
@@ -0,0 +1,11 @@
1
+ /// <reference types="node" />
2
+ import Transport from '@ledgerhq/hw-transport';
3
+ import { AppInfoResponse, VersionResponse, DeviceInfoResponse, PublicKeyResponse, SignResponse } from './types';
4
+ export declare function serializePath(path: number[]): Buffer;
5
+ export declare function getVersion(transport: Transport): Promise<VersionResponse>;
6
+ export declare function getAppInfo(transport: Transport): Promise<AppInfoResponse>;
7
+ export declare function getDeviceInfo(transport: Transport): Promise<DeviceInfoResponse>;
8
+ export declare function publicKey(transport: Transport, data: Buffer): Promise<PublicKeyResponse>;
9
+ export declare function getAddressAndPubKey(transport: Transport, data: Buffer): Promise<PublicKeyResponse>;
10
+ export declare function showAddressAndPubKey(transport: Transport, data: Buffer): Promise<PublicKeyResponse>;
11
+ export declare function sign(transport: Transport, path: number[], message: Buffer): Promise<SignResponse>;
@@ -0,0 +1,379 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.sign = exports.showAddressAndPubKey = exports.getAddressAndPubKey = exports.publicKey = exports.getDeviceInfo = exports.getAppInfo = exports.getVersion = exports.serializePath = void 0;
40
+ var constants_1 = require("./constants");
41
+ function errorCodeToString(statusCode) {
42
+ if (statusCode in constants_1.ERROR_DESCRIPTION) {
43
+ return constants_1.ERROR_DESCRIPTION[statusCode];
44
+ }
45
+ return "Unknown Status Code: ".concat(statusCode);
46
+ }
47
+ function isDict(v) {
48
+ return typeof v === 'object' && v !== null && !(v instanceof Array) && !(v instanceof Date);
49
+ }
50
+ function processErrorResponse(response) {
51
+ if (response) {
52
+ if (isDict(response)) {
53
+ if (Object.prototype.hasOwnProperty.call(response, 'statusCode')) {
54
+ return {
55
+ return_code: response.statusCode,
56
+ error_message: errorCodeToString(response.statusCode),
57
+ };
58
+ }
59
+ if (Object.prototype.hasOwnProperty.call(response, 'return_code') &&
60
+ Object.prototype.hasOwnProperty.call(response, 'error_message')) {
61
+ return response;
62
+ }
63
+ }
64
+ return {
65
+ return_code: 0xffff,
66
+ error_message: response.toString(),
67
+ };
68
+ }
69
+ return {
70
+ return_code: 0xffff,
71
+ error_message: response.toString(),
72
+ };
73
+ }
74
+ function serializePath(path) {
75
+ if (!path || path.length !== 5) {
76
+ throw new TypeError('Invalid path.');
77
+ }
78
+ var buf = Buffer.alloc(20);
79
+ buf.writeUInt32LE(0x80000000 + path[0], 0);
80
+ buf.writeUInt32LE(0x80000000 + path[1], 4);
81
+ buf.writeUInt32LE(0x80000000 + path[2], 8);
82
+ buf.writeUInt32LE(path[3], 12);
83
+ buf.writeUInt32LE(path[4], 16);
84
+ return buf;
85
+ }
86
+ exports.serializePath = serializePath;
87
+ function getVersion(transport) {
88
+ return __awaiter(this, void 0, void 0, function () {
89
+ return __generator(this, function (_a) {
90
+ return [2 /*return*/, transport
91
+ .send(constants_1.CLA, constants_1.INS.GET_VERSION, 0, 0)
92
+ .then(function (response) {
93
+ var errorCodeData = response.slice(-2);
94
+ var return_code = errorCodeData[0] * 256 + errorCodeData[1];
95
+ var targetId = 0;
96
+ if (response.length >= 9) {
97
+ /* eslint-disable no-bitwise */
98
+ targetId = (response[5] << 24) + (response[6] << 16) + (response[7] << 8) + (response[8] << 0);
99
+ /* eslint-enable no-bitwise */
100
+ }
101
+ return {
102
+ return_code: return_code,
103
+ error_message: errorCodeToString(return_code),
104
+ // ///
105
+ test_mode: response[0] !== 0,
106
+ major: response[1],
107
+ minor: response[2],
108
+ patch: response[3],
109
+ device_locked: response[4] === 1,
110
+ target_id: targetId.toString(16),
111
+ };
112
+ })
113
+ .catch(processErrorResponse)];
114
+ });
115
+ });
116
+ }
117
+ exports.getVersion = getVersion;
118
+ function getAppInfo(transport) {
119
+ return __awaiter(this, void 0, void 0, function () {
120
+ return __generator(this, function (_a) {
121
+ return [2 /*return*/, transport
122
+ .send(0xb0, 0x01, 0, 0)
123
+ .then(function (response) {
124
+ var errorCodeData = response.slice(-2);
125
+ var return_code = errorCodeData[0] * 256 + errorCodeData[1];
126
+ var error_message;
127
+ var app_name = 'err';
128
+ var app_version = 'err';
129
+ var flag_len = 0;
130
+ var flags_value = 0;
131
+ if (response[0] !== 1) {
132
+ // Ledger responds with format ID 1. There is no spec for any format != 1
133
+ error_message = 'response format ID not recognized';
134
+ return_code = 0x9001;
135
+ }
136
+ else {
137
+ error_message = 'No errors';
138
+ var appNameLen = response[1];
139
+ app_name = response.slice(2, 2 + appNameLen).toString('ascii');
140
+ var idx = 2 + appNameLen;
141
+ var appVersionLen = response[idx];
142
+ idx += 1;
143
+ app_version = response.slice(idx, idx + appVersionLen).toString('ascii');
144
+ idx += appVersionLen;
145
+ var appFlagsLen = response[idx];
146
+ idx += 1;
147
+ flag_len = appFlagsLen;
148
+ flags_value = response[idx];
149
+ }
150
+ return {
151
+ return_code: return_code,
152
+ error_message: error_message,
153
+ // //
154
+ app_name: app_name,
155
+ app_version: app_version,
156
+ flag_len: flag_len,
157
+ flags_value: flags_value,
158
+ // eslint-disable-next-line no-bitwise
159
+ flag_recovery: (flags_value & 1) !== 0,
160
+ // eslint-disable-next-line no-bitwise
161
+ flag_signed_mcu_code: (flags_value & 2) !== 0,
162
+ // eslint-disable-next-line no-bitwise
163
+ flag_onboarded: (flags_value & 4) !== 0,
164
+ // eslint-disable-next-line no-bitwise
165
+ flag_pin_validated: (flags_value & 128) !== 0,
166
+ };
167
+ })
168
+ .catch(processErrorResponse)];
169
+ });
170
+ });
171
+ }
172
+ exports.getAppInfo = getAppInfo;
173
+ function getDeviceInfo(transport) {
174
+ return __awaiter(this, void 0, void 0, function () {
175
+ return __generator(this, function (_a) {
176
+ return [2 /*return*/, transport
177
+ .send(0xe0, 0x01, 0, 0, Buffer.from([]), [constants_1.ERROR_CODE.NoError, 0x6e00])
178
+ .then(function (response) {
179
+ var errorCodeData = response.slice(-2);
180
+ var returnCode = errorCodeData[0] * 256 + errorCodeData[1];
181
+ if (returnCode === 0x6e00) {
182
+ return {
183
+ return_code: returnCode,
184
+ error_message: 'This command is only available in the Dashboard',
185
+ };
186
+ }
187
+ var target_id = response.slice(0, 4).toString('hex');
188
+ var pos = 4;
189
+ var secureElementVersionLen = response[pos];
190
+ pos += 1;
191
+ var se_version = response.slice(pos, pos + secureElementVersionLen).toString();
192
+ pos += secureElementVersionLen;
193
+ var flagsLen = response[pos];
194
+ pos += 1;
195
+ var flag = response.slice(pos, pos + flagsLen).toString('hex');
196
+ pos += flagsLen;
197
+ var mcuVersionLen = response[pos];
198
+ pos += 1;
199
+ // Patch issue in mcu version
200
+ var tmp = response.slice(pos, pos + mcuVersionLen);
201
+ if (tmp[mcuVersionLen - 1] === 0) {
202
+ tmp = response.slice(pos, pos + mcuVersionLen - 1);
203
+ }
204
+ var mcu_version = tmp.toString();
205
+ return {
206
+ return_code: returnCode,
207
+ error_message: errorCodeToString(returnCode),
208
+ // //
209
+ target_id: target_id,
210
+ se_version: se_version,
211
+ flag: flag,
212
+ mcu_version: mcu_version,
213
+ };
214
+ })
215
+ .catch(processErrorResponse)];
216
+ });
217
+ });
218
+ }
219
+ exports.getDeviceInfo = getDeviceInfo;
220
+ function publicKey(transport, data) {
221
+ return __awaiter(this, void 0, void 0, function () {
222
+ return __generator(this, function (_a) {
223
+ return [2 /*return*/, transport
224
+ .send(constants_1.CLA, constants_1.INS.GET_ADDR_SECP256K1, 0, 0, data, [constants_1.ERROR_CODE.NoError])
225
+ .then(function (response) {
226
+ var errorCodeData = response.slice(-2);
227
+ var returnCode = errorCodeData[0] * 256 + errorCodeData[1];
228
+ var compressedPk = response ? Buffer.from(response.slice(0, 33)) : null;
229
+ return {
230
+ pk: 'OBSOLETE PROPERTY',
231
+ compressed_pk: compressedPk ? compressedPk.toJSON() : compressedPk,
232
+ return_code: returnCode,
233
+ error_message: errorCodeToString(returnCode),
234
+ };
235
+ })
236
+ .catch(processErrorResponse)];
237
+ });
238
+ });
239
+ }
240
+ exports.publicKey = publicKey;
241
+ function getAddressAndPubKey(transport, data) {
242
+ return __awaiter(this, void 0, void 0, function () {
243
+ return __generator(this, function (_a) {
244
+ return [2 /*return*/, transport
245
+ .send(constants_1.CLA, constants_1.INS.GET_ADDR_SECP256K1, constants_1.P1_VALUES.ONLY_RETRIEVE, 0, data, [constants_1.ERROR_CODE.NoError])
246
+ .then(function (response) {
247
+ var errorCodeData = response.slice(-2);
248
+ var returnCode = errorCodeData[0] * 256 + errorCodeData[1];
249
+ var compressedPk = Buffer.from(response.slice(0, 33));
250
+ var bech32Address = Buffer.from(response.slice(33, -2)).toString();
251
+ return {
252
+ bech32_address: bech32Address,
253
+ compressed_pk: compressedPk.toJSON(),
254
+ return_code: returnCode,
255
+ error_message: errorCodeToString(returnCode),
256
+ };
257
+ })
258
+ .catch(processErrorResponse)];
259
+ });
260
+ });
261
+ }
262
+ exports.getAddressAndPubKey = getAddressAndPubKey;
263
+ function showAddressAndPubKey(transport, data) {
264
+ return __awaiter(this, void 0, void 0, function () {
265
+ return __generator(this, function (_a) {
266
+ return [2 /*return*/, transport
267
+ .send(constants_1.CLA, constants_1.INS.GET_ADDR_SECP256K1, constants_1.P1_VALUES.SHOW_ADDRESS_IN_DEVICE, 0, data, [constants_1.ERROR_CODE.NoError])
268
+ .then(function (response) {
269
+ var errorCodeData = response.slice(-2);
270
+ var returnCode = errorCodeData[0] * 256 + errorCodeData[1];
271
+ var compressedPk = Buffer.from(response.slice(0, 33));
272
+ var bech32Address = Buffer.from(response.slice(33, -2)).toString();
273
+ return {
274
+ bech32_address: bech32Address,
275
+ compressed_pk: compressedPk.toJSON(),
276
+ return_code: returnCode,
277
+ error_message: errorCodeToString(returnCode),
278
+ };
279
+ })
280
+ .catch(processErrorResponse)];
281
+ });
282
+ });
283
+ }
284
+ exports.showAddressAndPubKey = showAddressAndPubKey;
285
+ function signGetChunks(path, message) {
286
+ var result = serializePath(path);
287
+ var chunks = [];
288
+ if (result instanceof Buffer) {
289
+ chunks.push(result);
290
+ var buffer = Buffer.from(message);
291
+ for (var i = 0; i < buffer.length; i += constants_1.CHUNK_SIZE) {
292
+ var end = i + constants_1.CHUNK_SIZE;
293
+ if (i > buffer.length) {
294
+ end = buffer.length;
295
+ }
296
+ chunks.push(buffer.slice(i, end));
297
+ }
298
+ }
299
+ return chunks;
300
+ }
301
+ function signSendChunk(transport, chunkIdx, chunkNum, chunk) {
302
+ return __awaiter(this, void 0, void 0, function () {
303
+ var payloadType;
304
+ return __generator(this, function (_a) {
305
+ payloadType = constants_1.PAYLOAD_TYPE.ADD;
306
+ if (chunkIdx === 1) {
307
+ payloadType = constants_1.PAYLOAD_TYPE.INIT;
308
+ }
309
+ if (chunkIdx === chunkNum) {
310
+ payloadType = constants_1.PAYLOAD_TYPE.LAST;
311
+ }
312
+ return [2 /*return*/, transport
313
+ .send(constants_1.CLA, constants_1.INS.SIGN_SECP256K1, payloadType, 0, chunk, [constants_1.ERROR_CODE.NoError, 0x6984, 0x6a80])
314
+ .then(function (response) {
315
+ var errorCodeData = response.slice(-2);
316
+ var returnCode = errorCodeData[0] * 256 + errorCodeData[1];
317
+ var errorMessage = errorCodeToString(returnCode);
318
+ if (returnCode === 0x6a80 || returnCode === 0x6984) {
319
+ errorMessage = "".concat(errorMessage, " : ").concat(response.slice(0, response.length - 2).toString('ascii'));
320
+ }
321
+ var signature = Buffer.from([]);
322
+ if (response.length > 2) {
323
+ signature = response.slice(0, response.length - 2);
324
+ }
325
+ return {
326
+ signature: signature.toJSON(),
327
+ return_code: returnCode,
328
+ error_message: errorMessage,
329
+ };
330
+ })
331
+ .catch(processErrorResponse)];
332
+ });
333
+ });
334
+ }
335
+ function sign(transport, path, message) {
336
+ return __awaiter(this, void 0, void 0, function () {
337
+ var chunks;
338
+ var _this = this;
339
+ return __generator(this, function (_a) {
340
+ chunks = signGetChunks(path, message);
341
+ return [2 /*return*/, signSendChunk(transport, 1, chunks.length, chunks[0])
342
+ .then(function (response) { return __awaiter(_this, void 0, void 0, function () {
343
+ var result, i;
344
+ return __generator(this, function (_a) {
345
+ switch (_a.label) {
346
+ case 0:
347
+ result = {
348
+ return_code: response.return_code,
349
+ error_message: response.error_message,
350
+ signature: { type: 'Buffer', data: [] },
351
+ };
352
+ i = 1;
353
+ _a.label = 1;
354
+ case 1:
355
+ if (!(i < chunks.length)) return [3 /*break*/, 4];
356
+ return [4 /*yield*/, signSendChunk(transport, 1 + i, chunks.length, chunks[i])];
357
+ case 2:
358
+ result = _a.sent();
359
+ if (result.return_code !== constants_1.ERROR_CODE.NoError) {
360
+ return [3 /*break*/, 4];
361
+ }
362
+ _a.label = 3;
363
+ case 3:
364
+ i += 1;
365
+ return [3 /*break*/, 1];
366
+ case 4: return [2 /*return*/, {
367
+ return_code: result.return_code,
368
+ error_message: result.error_message,
369
+ signature: result.signature,
370
+ }];
371
+ }
372
+ });
373
+ }); })
374
+ .catch(processErrorResponse)];
375
+ });
376
+ });
377
+ }
378
+ exports.sign = sign;
379
+ //# sourceMappingURL=device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../../src/key/ledger/device.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import InitiaApp from './app';
2
+ export * from './types';
3
+ export * from './constants';
4
+ export * from './LedgerKey';
5
+ export default InitiaApp;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ var app_1 = __importDefault(require("./app"));
21
+ __exportStar(require("./types"), exports);
22
+ __exportStar(require("./constants"), exports);
23
+ __exportStar(require("./LedgerKey"), exports);
24
+ exports.default = app_1.default;
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/key/ledger/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,8CAA8B;AAC9B,0CAAwB;AACxB,8CAA4B;AAC5B,8CAA4B;AAE5B,kBAAe,aAAS,CAAC"}
@@ -0,0 +1,44 @@
1
+ export interface JSONBuffer {
2
+ type: 'Buffer';
3
+ data: number[];
4
+ }
5
+ export interface CommonResponse {
6
+ return_code: number;
7
+ error_message: string;
8
+ device_locked?: boolean;
9
+ }
10
+ export interface PublicKeyResponse extends CommonResponse {
11
+ bech32_address: string;
12
+ pk: 'OBSOLETE PROPERTY';
13
+ compressed_pk: JSONBuffer;
14
+ }
15
+ export interface AddressResponse extends CommonResponse {
16
+ bech32_address: string;
17
+ compressed_pk: JSONBuffer;
18
+ }
19
+ export interface SignResponse extends CommonResponse {
20
+ signature: JSONBuffer;
21
+ }
22
+ export interface AppInfoResponse extends CommonResponse {
23
+ app_name: string;
24
+ app_version: string;
25
+ flag_len: number;
26
+ flags_value: number;
27
+ flag_recovery: boolean;
28
+ flag_signed_mcu_code: boolean;
29
+ flag_onboarded: boolean;
30
+ flag_pin_validated: Boolean;
31
+ }
32
+ export interface VersionResponse extends CommonResponse {
33
+ test_mode: boolean;
34
+ major: number;
35
+ minor: number;
36
+ patch: number;
37
+ target_id: string;
38
+ }
39
+ export interface DeviceInfoResponse extends CommonResponse {
40
+ target_id: string;
41
+ se_version: string;
42
+ flag: string;
43
+ mcu_version: string;
44
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/key/ledger/types.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  import { StructTypeDefinition } from '@mysten/bcs';
2
- import { MoveFunctionABI } from 'core/move/types';
2
+ import { MoveFunctionABI } from '../core/move/types';
3
3
  export declare class BCS {
4
4
  private static bcs;
5
5
  private mystenBcs;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@initia/initia.js",
3
- "version": "0.0.31",
3
+ "version": "0.0.32",
4
4
  "description": "The JavaScript SDK for Initia",
5
5
  "license": "MIT",
6
6
  "author": "InitiaLabs",
@@ -58,12 +58,14 @@
58
58
  "@types/jest": "^29.0.3",
59
59
  "@types/node": "^18.7.18",
60
60
  "@types/readable-stream": "^2.3.14",
61
+ "@types/ripemd160": "^2.0.0",
61
62
  "@types/secp256k1": "^4.0.3",
62
63
  "@types/tmp": "^0.2.3",
63
64
  "@types/ws": "^7.4.7",
64
65
  "@typescript-eslint/eslint-plugin": "^5.38.0",
65
66
  "@typescript-eslint/parser": "^5.38.0",
66
67
  "buffer": "^6.0.3",
68
+ "crypto-browserify": "^3.12.0",
67
69
  "eslint": "^8.23.1",
68
70
  "husky": "^8.0.1",
69
71
  "jest": "^29.0.3",
@@ -82,7 +84,11 @@
82
84
  "webpack-cli": "^4.10.0"
83
85
  },
84
86
  "dependencies": {
85
- "@initia/initia.proto": "^0.0.11-alpha1",
87
+ "@initia/initia.proto": "^0.0.12-alpha1",
88
+ "@ledgerhq/hw-transport": "^6.20.0",
89
+ "@ledgerhq/hw-transport-node-hid": "^6.20.0",
90
+ "@ledgerhq/hw-transport-webhid": "^6.20.0",
91
+ "@ledgerhq/hw-transport-webusb": "^6.20.0",
86
92
  "@mysten/bcs": "^0.5.0",
87
93
  "axios": "^0.27.2",
88
94
  "bech32": "^2.0.0",
@@ -93,6 +99,7 @@
93
99
  "jscrypto": "^1.0.3",
94
100
  "long": "^5.2.0",
95
101
  "readable-stream": "^4.1.0",
102
+ "ripemd160": "^2.0.2",
96
103
  "secp256k1": "^4.0.3",
97
104
  "tmp": "^0.2.1",
98
105
  "utf-8-validate": "^5.0.9",