@shapeshiftoss/hdwallet-ledger 1.52.6 → 1.52.9

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.
@@ -0,0 +1,73 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.publicKeyv2 = exports.signSendChunkv2 = exports.serializePathv2 = void 0;
13
+ const common_1 = require("./common");
14
+ const signSendChunkv1 = (app, chunkIdx, chunkNum, chunk) => __awaiter(void 0, void 0, void 0, function* () {
15
+ return app.transport
16
+ .send(common_1.CLA, common_1.INS.SIGN_SECP256K1, chunkIdx, chunkNum, chunk, [common_1.ErrorCode.NoError, 0x6984, 0x6a80])
17
+ .then((response) => {
18
+ const errorCodeData = response.slice(-2);
19
+ const returnCode = errorCodeData[0] * 256 + errorCodeData[1];
20
+ let errorMessage = (0, common_1.errorCodeToString)(returnCode);
21
+ if (returnCode === 0x6a80 || returnCode === 0x6984) {
22
+ errorMessage = `${errorMessage} : ${response.slice(0, response.length - 2).toString("ascii")}`;
23
+ }
24
+ let signature = null;
25
+ if (response.length > 2) {
26
+ signature = response.slice(0, response.length - 2);
27
+ }
28
+ return {
29
+ signature,
30
+ return_code: returnCode,
31
+ error_message: errorMessage,
32
+ };
33
+ }, common_1.processErrorResponse);
34
+ });
35
+ const serializePathv2 = (path) => {
36
+ if (!path || path.length !== 5) {
37
+ throw new Error("Invalid path.");
38
+ }
39
+ const buf = Buffer.alloc(20);
40
+ buf.writeUInt32LE(path[0], 0);
41
+ buf.writeUInt32LE(path[1], 4);
42
+ buf.writeUInt32LE(path[2], 8);
43
+ buf.writeUInt32LE(path[3], 12);
44
+ buf.writeUInt32LE(path[4], 16);
45
+ return buf;
46
+ };
47
+ exports.serializePathv2 = serializePathv2;
48
+ const signSendChunkv2 = (app, chunkIdx, chunkNum, chunk) => __awaiter(void 0, void 0, void 0, function* () {
49
+ let payloadType = common_1.PAYLOAD_TYPE.ADD;
50
+ if (chunkIdx === 1) {
51
+ payloadType = common_1.PAYLOAD_TYPE.INIT;
52
+ }
53
+ if (chunkIdx === chunkNum) {
54
+ payloadType = common_1.PAYLOAD_TYPE.LAST;
55
+ }
56
+ return signSendChunkv1(app, payloadType, 0, chunk);
57
+ });
58
+ exports.signSendChunkv2 = signSendChunkv2;
59
+ const publicKeyv2 = (app, data) => __awaiter(void 0, void 0, void 0, function* () {
60
+ return app.transport.send(common_1.CLA, common_1.INS.GET_ADDR_SECP256K1, 0, 0, data, [common_1.ErrorCode.NoError]).then((response) => {
61
+ const errorCodeData = response.slice(-2);
62
+ const returnCode = errorCodeData[0] * 256 + errorCodeData[1];
63
+ const compressedPk = Buffer.from(response.slice(0, 33));
64
+ return {
65
+ pk: "OBSOLETE PROPERTY",
66
+ compressed_pk: compressedPk,
67
+ return_code: returnCode,
68
+ error_message: (0, common_1.errorCodeToString)(returnCode),
69
+ };
70
+ }, common_1.processErrorResponse);
71
+ });
72
+ exports.publicKeyv2 = publicKeyv2;
73
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/thorchain/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /// <reference types="node" />
2
+ import * as core from "@shapeshiftoss/hdwallet-core";
3
+ export type GetAddressAndPubKeyResponse = {
4
+ bech32_address: string;
5
+ compressed_pk: Uint8Array;
6
+ error_message: string;
7
+ return_code: number;
8
+ };
9
+ export type SignResponse = {
10
+ signature: Uint8Array;
11
+ error_message: string;
12
+ return_code: number;
13
+ };
14
+ declare class THORChainApp {
15
+ transport: any;
16
+ versionResponse: any;
17
+ constructor(transport: any, scrambleKey?: string);
18
+ static serializeHRP(hrp: any): Buffer;
19
+ static getBech32FromPK(hrp: any, pk: any): `${Lowercase<any>}1${string}`;
20
+ serializePath(path: Array<number>): Promise<Buffer | {
21
+ return_code: number;
22
+ error_message: string;
23
+ }>;
24
+ signGetChunks(path: Array<number>, message: any): Promise<(Buffer | {
25
+ return_code: number;
26
+ error_message: string;
27
+ })[]>;
28
+ getVersion(): Promise<any>;
29
+ appInfo(): Promise<any>;
30
+ deviceInfo(): Promise<any>;
31
+ publicKey(path: Array<number>): Promise<any>;
32
+ getAddressAndPubKey(path: Array<number>, hrp: any): Promise<GetAddressAndPubKeyResponse>;
33
+ showAddressAndPubKey(path: Array<number>, hrp: any): Promise<any>;
34
+ signSendChunk(chunkIdx: number, chunkNum: number, chunk: any): Promise<any>;
35
+ sign(msg: core.ThorchainSignTx): Promise<SignResponse>;
36
+ }
37
+ export { THORChainApp };
38
+ //# sourceMappingURL=hw-app-thor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hw-app-thor.d.ts","sourceRoot":"","sources":["../../src/thorchain/hw-app-thor.ts"],"names":[],"mappings":";AAiBA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AAmBrD,MAAM,MAAM,2BAA2B,GAAG;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,UAAU,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,UAAU,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAuBF,cAAM,YAAY;IAChB,SAAS,EAAE,GAAG,CAAC;IACf,eAAe,EAAE,GAAG,CAAC;gBAET,SAAS,EAAE,GAAG,EAAE,WAAW,SAAU;IAajD,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG;IAU5B,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG;IAclC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;;;;IAkBjC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG;;;;IAkB/C,UAAU;IASV,OAAO;IAkDP,UAAU;IA8CV,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;IAoB7B,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,2BAA2B,CAAC;IA4BxF,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG;IA4BlD,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAY5D,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;CAiC7D;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,340 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.THORChainApp = void 0;
16
+ /** ******************************************************************************
17
+ * (c) 2019 ZondaX GmbH
18
+ * (c) 2016-2017 Ledger
19
+ *
20
+ * Licensed under the Apache License, Version 2.0 (the "License");
21
+ * you may not use this file except in compliance with the License.
22
+ * You may obtain a copy of the License at
23
+ *
24
+ * http://www.apache.org/licenses/LICENSE-2.0
25
+ *
26
+ * Unless required by applicable law or agreed to in writing, software
27
+ * distributed under the License is distributed on an "AS IS" BASIS,
28
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29
+ * See the License for the specific language governing permissions and
30
+ * limitations under the License.
31
+ ******************************************************************************* */
32
+ const base_1 = require("@scure/base");
33
+ const crypto_1 = __importDefault(require("crypto"));
34
+ const ripemd160_1 = __importDefault(require("ripemd160"));
35
+ const common_1 = require("./common");
36
+ const helpers_1 = require("./helpers");
37
+ const THOR_CHAIN = "thorchain-mainnet-v1";
38
+ const recursivelyOrderKeys = (unordered) => {
39
+ // If it's an array - recursively order any
40
+ // dictionary items within the array
41
+ if (Array.isArray(unordered)) {
42
+ unordered.forEach((item, index) => {
43
+ unordered[index] = recursivelyOrderKeys(item);
44
+ });
45
+ return unordered;
46
+ }
47
+ // If it's an object - let's order the keys
48
+ if (typeof unordered !== "object")
49
+ return unordered;
50
+ const ordered = {};
51
+ Object.keys(unordered)
52
+ .sort()
53
+ .forEach((key) => (ordered[key] = recursivelyOrderKeys(unordered[key])));
54
+ return ordered;
55
+ };
56
+ const stringifyKeysInOrder = (data) => JSON.stringify(recursivelyOrderKeys(data));
57
+ class THORChainApp {
58
+ constructor(transport, scrambleKey = common_1.APP_KEY) {
59
+ if (!transport) {
60
+ throw new Error("Transport has not been defined");
61
+ }
62
+ this.transport = transport;
63
+ transport.decorateAppAPIMethods.bind(transport)(this, ["getVersion", "sign", "getAddressAndPubKey", "appInfo", "deviceInfo", "getBech32FromPK"], scrambleKey);
64
+ }
65
+ static serializeHRP(hrp) {
66
+ if (hrp == null || hrp.length < 3 || hrp.length > 83) {
67
+ throw new Error("Invalid HRP");
68
+ }
69
+ const buf = Buffer.alloc(1 + hrp.length);
70
+ buf.writeUInt8(hrp.length, 0);
71
+ buf.write(hrp, 1);
72
+ return buf;
73
+ }
74
+ static getBech32FromPK(hrp, pk) {
75
+ var _a, _b;
76
+ if (pk.length !== 33) {
77
+ throw new Error("expected compressed public key [31 bytes]");
78
+ }
79
+ const hashSha256 = crypto_1.default.createHash("sha256").update(pk).digest();
80
+ const hashRip = new ripemd160_1.default().update(hashSha256).digest();
81
+ // ts is drunk and doesn't like bech32.bech32 here
82
+ const encode = base_1.bech32.encode || ((_a = base_1.bech32.bech32) === null || _a === void 0 ? void 0 : _a.encode);
83
+ // ts is drunk and doesn't like bech32.bech32 here
84
+ const toWords = base_1.bech32.toWords || ((_b = base_1.bech32.bech32) === null || _b === void 0 ? void 0 : _b.toWords);
85
+ return encode(hrp, toWords(hashRip));
86
+ }
87
+ serializePath(path) {
88
+ return __awaiter(this, void 0, void 0, function* () {
89
+ this.versionResponse = yield (0, common_1.getVersion)(this.transport);
90
+ if (this.versionResponse.return_code !== common_1.ErrorCode.NoError) {
91
+ throw this.versionResponse;
92
+ }
93
+ switch (this.versionResponse.major) {
94
+ case 2:
95
+ return (0, helpers_1.serializePathv2)(path);
96
+ default:
97
+ return {
98
+ return_code: 0x6400,
99
+ error_message: "App Version is not supported",
100
+ };
101
+ }
102
+ });
103
+ }
104
+ signGetChunks(path, message) {
105
+ return __awaiter(this, void 0, void 0, function* () {
106
+ const serializedPath = yield this.serializePath(path);
107
+ const chunks = [];
108
+ chunks.push(serializedPath);
109
+ const buffer = Buffer.from(message);
110
+ for (let i = 0; i < buffer.length; i += common_1.CHUNK_SIZE) {
111
+ let end = i + common_1.CHUNK_SIZE;
112
+ if (i > buffer.length) {
113
+ end = buffer.length;
114
+ }
115
+ chunks.push(buffer.slice(i, end));
116
+ }
117
+ return chunks;
118
+ });
119
+ }
120
+ getVersion() {
121
+ return __awaiter(this, void 0, void 0, function* () {
122
+ try {
123
+ this.versionResponse = yield (0, common_1.getVersion)(this.transport);
124
+ return this.versionResponse;
125
+ }
126
+ catch (e) {
127
+ return (0, common_1.processErrorResponse)(e);
128
+ }
129
+ });
130
+ }
131
+ appInfo() {
132
+ return __awaiter(this, void 0, void 0, function* () {
133
+ return this.transport.send(0xb0, 0x01, 0, 0).then((response) => {
134
+ const errorCodeData = response.slice(-2);
135
+ const returnCode = errorCodeData[0] * 256 + errorCodeData[1];
136
+ const result = {};
137
+ let appName = "err";
138
+ let appVersion = "err";
139
+ let flagLen = 0;
140
+ let flagsValue = 0;
141
+ if (response[0] !== 1) {
142
+ // Ledger responds with format ID 1. There is no spec for any format != 1
143
+ result.error_message = "response format ID not recognized";
144
+ result.return_code = 0x9001;
145
+ }
146
+ else {
147
+ const appNameLen = response[1];
148
+ appName = response.slice(2, 2 + appNameLen).toString("ascii");
149
+ let idx = 2 + appNameLen;
150
+ const appVersionLen = response[idx];
151
+ idx += 1;
152
+ appVersion = response.slice(idx, idx + appVersionLen).toString("ascii");
153
+ idx += appVersionLen;
154
+ const appFlagsLen = response[idx];
155
+ idx += 1;
156
+ flagLen = appFlagsLen;
157
+ flagsValue = response[idx];
158
+ }
159
+ return {
160
+ return_code: returnCode,
161
+ error_message: (0, common_1.errorCodeToString)(returnCode),
162
+ // //
163
+ appName,
164
+ appVersion,
165
+ flagLen,
166
+ flagsValue,
167
+ flag_recovery: (flagsValue & 1) !== 0,
168
+ flag_signed_mcu_code: (flagsValue & 2) !== 0,
169
+ flag_onboarded: (flagsValue & 4) !== 0,
170
+ flag_pin_validated: (flagsValue & 128) !== 0,
171
+ };
172
+ }, common_1.processErrorResponse);
173
+ });
174
+ }
175
+ deviceInfo() {
176
+ return __awaiter(this, void 0, void 0, function* () {
177
+ return this.transport.send(0xe0, 0x01, 0, 0, Buffer.from([]), [common_1.ErrorCode.NoError, 0x6e00]).then((response) => {
178
+ const errorCodeData = response.slice(-2);
179
+ const returnCode = errorCodeData[0] * 256 + errorCodeData[1];
180
+ if (returnCode === 0x6e00) {
181
+ return {
182
+ return_code: returnCode,
183
+ error_message: "This command is only available in the Dashboard",
184
+ };
185
+ }
186
+ const targetId = response.slice(0, 4).toString("hex");
187
+ let pos = 4;
188
+ const secureElementVersionLen = response[pos];
189
+ pos += 1;
190
+ const seVersion = response.slice(pos, pos + secureElementVersionLen).toString();
191
+ pos += secureElementVersionLen;
192
+ const flagsLen = response[pos];
193
+ pos += 1;
194
+ const flag = response.slice(pos, pos + flagsLen).toString("hex");
195
+ pos += flagsLen;
196
+ const mcuVersionLen = response[pos];
197
+ pos += 1;
198
+ // Patch issue in mcu version
199
+ let tmp = response.slice(pos, pos + mcuVersionLen);
200
+ if (tmp[mcuVersionLen - 1] === 0) {
201
+ tmp = response.slice(pos, pos + mcuVersionLen - 1);
202
+ }
203
+ const mcuVersion = tmp.toString();
204
+ return {
205
+ return_code: returnCode,
206
+ error_message: (0, common_1.errorCodeToString)(returnCode),
207
+ // //
208
+ targetId,
209
+ seVersion,
210
+ flag,
211
+ mcuVersion,
212
+ };
213
+ }, common_1.processErrorResponse);
214
+ });
215
+ }
216
+ publicKey(path) {
217
+ return __awaiter(this, void 0, void 0, function* () {
218
+ try {
219
+ const serializedPath = yield this.serializePath(path);
220
+ switch (this.versionResponse.major) {
221
+ case 2: {
222
+ const data = Buffer.concat([THORChainApp.serializeHRP("thor"), serializedPath]);
223
+ return yield (0, helpers_1.publicKeyv2)(this, data);
224
+ }
225
+ default:
226
+ return {
227
+ return_code: 0x6400,
228
+ error_message: "App Version is not supported",
229
+ };
230
+ }
231
+ }
232
+ catch (e) {
233
+ return (0, common_1.processErrorResponse)(e);
234
+ }
235
+ });
236
+ }
237
+ getAddressAndPubKey(path, hrp) {
238
+ return __awaiter(this, void 0, void 0, function* () {
239
+ try {
240
+ return yield this.serializePath(path)
241
+ .then((serializedPath) => {
242
+ const data = Buffer.concat([THORChainApp.serializeHRP(hrp), serializedPath]);
243
+ return this.transport
244
+ .send(common_1.CLA, common_1.INS.GET_ADDR_SECP256K1, common_1.P1_VALUES.ONLY_RETRIEVE, 0, data, [common_1.ErrorCode.NoError])
245
+ .then((response) => {
246
+ const errorCodeData = response.slice(-2);
247
+ const returnCode = errorCodeData[0] * 256 + errorCodeData[1];
248
+ const compressedPk = Buffer.from(response.slice(0, 33));
249
+ const bech32Address = Buffer.from(response.slice(33, -2)).toString();
250
+ return {
251
+ bech32_address: bech32Address,
252
+ compressed_pk: compressedPk,
253
+ return_code: returnCode,
254
+ error_message: (0, common_1.errorCodeToString)(returnCode),
255
+ };
256
+ }, common_1.processErrorResponse);
257
+ })
258
+ .catch((err) => (0, common_1.processErrorResponse)(err));
259
+ }
260
+ catch (e) {
261
+ return (0, common_1.processErrorResponse)(e);
262
+ }
263
+ });
264
+ }
265
+ showAddressAndPubKey(path, hrp) {
266
+ return __awaiter(this, void 0, void 0, function* () {
267
+ try {
268
+ return yield this.serializePath(path)
269
+ .then((serializedPath) => {
270
+ const data = Buffer.concat([THORChainApp.serializeHRP(hrp), serializedPath]);
271
+ return this.transport
272
+ .send(common_1.CLA, common_1.INS.GET_ADDR_SECP256K1, common_1.P1_VALUES.SHOW_ADDRESS_IN_DEVICE, 0, data, [common_1.ErrorCode.NoError])
273
+ .then((response) => {
274
+ const errorCodeData = response.slice(-2);
275
+ const returnCode = errorCodeData[0] * 256 + errorCodeData[1];
276
+ const compressedPk = Buffer.from(response.slice(0, 33));
277
+ const bech32Address = Buffer.from(response.slice(33, -2)).toString();
278
+ return {
279
+ bech32_address: bech32Address,
280
+ compressed_pk: compressedPk,
281
+ return_code: returnCode,
282
+ error_message: (0, common_1.errorCodeToString)(returnCode),
283
+ };
284
+ }, common_1.processErrorResponse);
285
+ })
286
+ .catch((err) => (0, common_1.processErrorResponse)(err));
287
+ }
288
+ catch (e) {
289
+ return (0, common_1.processErrorResponse)(e);
290
+ }
291
+ });
292
+ }
293
+ signSendChunk(chunkIdx, chunkNum, chunk) {
294
+ return __awaiter(this, void 0, void 0, function* () {
295
+ switch (this.versionResponse.major) {
296
+ case 2:
297
+ return (0, helpers_1.signSendChunkv2)(this, chunkIdx, chunkNum, chunk);
298
+ default:
299
+ return {
300
+ return_code: 0x6400,
301
+ error_message: "App Version is not supported",
302
+ };
303
+ }
304
+ });
305
+ }
306
+ sign(msg) {
307
+ return __awaiter(this, void 0, void 0, function* () {
308
+ const rawTx = stringifyKeysInOrder({
309
+ account_number: msg.account_number,
310
+ chain_id: THOR_CHAIN,
311
+ fee: { amount: msg.tx.fee.amount, gas: msg.tx.fee.gas },
312
+ memo: msg.tx.memo,
313
+ msgs: msg.tx.msg,
314
+ sequence: msg.sequence,
315
+ });
316
+ return this.signGetChunks(msg.addressNList, rawTx).then((chunks) => {
317
+ return this.signSendChunk(1, chunks.length, chunks[0]).then((response) => __awaiter(this, void 0, void 0, function* () {
318
+ let result = {
319
+ return_code: response.return_code,
320
+ error_message: response.error_message,
321
+ signature: null,
322
+ };
323
+ for (let i = 1; i < chunks.length; i += 1) {
324
+ result = yield this.signSendChunk(1 + i, chunks.length, chunks[i]);
325
+ if (result.return_code !== common_1.ErrorCode.NoError) {
326
+ break;
327
+ }
328
+ }
329
+ return {
330
+ return_code: result.return_code,
331
+ error_message: result.error_message,
332
+ signature: result.signature,
333
+ };
334
+ }), common_1.processErrorResponse);
335
+ }, common_1.processErrorResponse);
336
+ });
337
+ }
338
+ }
339
+ exports.THORChainApp = THORChainApp;
340
+ //# sourceMappingURL=hw-app-thor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hw-app-thor.js","sourceRoot":"","sources":["../../src/thorchain/hw-app-thor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import * as core from "@shapeshiftoss/hdwallet-core";
2
+ import { LedgerTransport } from "..";
3
+ export * from "./common";
4
+ export * from "./helpers";
5
+ export * from "./hw-app-thor";
6
+ export declare const thorchainGetAddress: (transport: LedgerTransport, msg: core.ThorchainGetAddress) => Promise<string>;
7
+ export declare const thorchainSignTx: (transport: LedgerTransport, msg: core.ThorchainSignTx) => Promise<core.ThorchainSignedTx>;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/thorchain/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AAIrD,OAAO,EAAe,eAAe,EAAE,MAAM,IAAI,CAAC;AAElD,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAI9B,eAAO,MAAM,mBAAmB,cACnB,eAAe,OACrB,KAAK,mBAAmB,KAC5B,QAAQ,MAAM,CAMhB,CAAC;AAEF,eAAO,MAAM,eAAe,cACf,eAAe,OACrB,KAAK,eAAe,KACxB,QAAQ,KAAK,iBAAiB,CAgDhC,CAAC"}
@@ -0,0 +1,101 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
+ return new (P || (P = Promise))(function (resolve, reject) {
31
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
35
+ });
36
+ };
37
+ var __importDefault = (this && this.__importDefault) || function (mod) {
38
+ return (mod && mod.__esModule) ? mod : { "default": mod };
39
+ };
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.thorchainSignTx = exports.thorchainGetAddress = void 0;
42
+ const base64_js_1 = require("base64-js");
43
+ const p_lazy_1 = __importDefault(require("p-lazy"));
44
+ const __1 = require("..");
45
+ const utils_1 = require("./utils");
46
+ __exportStar(require("./common"), exports);
47
+ __exportStar(require("./helpers"), exports);
48
+ __exportStar(require("./hw-app-thor"), exports);
49
+ const protoTxBuilder = p_lazy_1.default.from(() => Promise.resolve().then(() => __importStar(require("@shapeshiftoss/proto-tx-builder"))));
50
+ const thorchainGetAddress = (transport, msg) => __awaiter(void 0, void 0, void 0, function* () {
51
+ const addressAndPubkey = yield transport.call("Rune", "getAddressAndPubKey", msg.addressNList, "thor");
52
+ (0, __1.handleError)(addressAndPubkey, transport, "Unable to obtain address and public key from device.");
53
+ return addressAndPubkey.payload.bech32_address;
54
+ });
55
+ exports.thorchainGetAddress = thorchainGetAddress;
56
+ const thorchainSignTx = (transport, msg) => __awaiter(void 0, void 0, void 0, function* () {
57
+ const addressAndPubkey = yield transport.call("Rune", "getAddressAndPubKey", msg.addressNList, "thor");
58
+ (0, __1.handleError)(addressAndPubkey, transport, "Unable to obtain address and public key from device.");
59
+ const { bech32_address: address, compressed_pk } = addressAndPubkey.payload;
60
+ const pubkey = (0, base64_js_1.fromByteArray)(compressed_pk);
61
+ const signResponse = yield transport.call("Rune", "sign", msg);
62
+ (0, __1.handleError)(signResponse, transport, "Unable to obtain signature from device.");
63
+ const signature = signResponse.payload.signature;
64
+ const offlineSigner = {
65
+ getAccounts() {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ return [
68
+ {
69
+ address,
70
+ algo: "secp256k1",
71
+ pubkey: compressed_pk,
72
+ },
73
+ ];
74
+ });
75
+ },
76
+ signAmino(signerAddress, signDoc) {
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ if (signerAddress !== address)
79
+ throw new Error("expected signerAddress to match address");
80
+ return {
81
+ signed: signDoc,
82
+ signature: {
83
+ pub_key: {
84
+ type: "tendermint/PubKeySecp256k1",
85
+ value: pubkey,
86
+ },
87
+ signature: (0, utils_1.getSignature)(signature),
88
+ },
89
+ };
90
+ });
91
+ },
92
+ };
93
+ const signerData = {
94
+ sequence: Number(msg.sequence),
95
+ accountNumber: Number(msg.account_number),
96
+ chainId: msg.chain_id,
97
+ };
98
+ return (yield protoTxBuilder).sign(address, msg.tx, offlineSigner, signerData, "thor");
99
+ });
100
+ exports.thorchainSignTx = thorchainSignTx;
101
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/thorchain/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,yCAA0C;AAC1C,oDAA2B;AAE3B,0BAAkD;AAClD,mCAAuC;AACvC,2CAAyB;AACzB,4CAA0B;AAC1B,gDAA8B;AAE9B,MAAM,cAAc,GAAG,gBAAK,CAAC,IAAI,CAAC,GAAG,EAAE,mDAAQ,iCAAiC,GAAC,CAAC,CAAC;AAE5E,MAAM,mBAAmB,GAAG,CACjC,SAA0B,EAC1B,GAA6B,EACZ,EAAE;IACnB,MAAM,gBAAgB,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAEvG,IAAA,eAAW,EAAC,gBAAgB,EAAE,SAAS,EAAE,sDAAsD,CAAC,CAAC;IAEjG,OAAO,gBAAgB,CAAC,OAAO,CAAC,cAAc,CAAC;AACjD,CAAC,CAAA,CAAC;AATW,QAAA,mBAAmB,uBAS9B;AAEK,MAAM,eAAe,GAAG,CAC7B,SAA0B,EAC1B,GAAyB,EACQ,EAAE;IACnC,MAAM,gBAAgB,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAEvG,IAAA,eAAW,EAAC,gBAAgB,EAAE,SAAS,EAAE,sDAAsD,CAAC,CAAC;IAEjG,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAC5E,MAAM,MAAM,GAAG,IAAA,yBAAa,EAAC,aAAa,CAAC,CAAC;IAE5C,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAE/D,IAAA,eAAW,EAAC,YAAY,EAAE,SAAS,EAAE,yCAAyC,CAAC,CAAC;IAEhF,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;IAEjD,MAAM,aAAa,GAAuB;QAClC,WAAW;;gBACf,OAAO;oBACL;wBACE,OAAO;wBACP,IAAI,EAAE,WAAW;wBACjB,MAAM,EAAE,aAAa;qBACtB;iBACF,CAAC;YACJ,CAAC;SAAA;QAEK,SAAS,CAAC,aAAqB,EAAE,OAAmB;;gBACxD,IAAI,aAAa,KAAK,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAE1F,OAAO;oBACL,MAAM,EAAE,OAAO;oBACf,SAAS,EAAE;wBACT,OAAO,EAAE;4BACP,IAAI,EAAE,4BAA4B;4BAClC,KAAK,EAAE,MAAM;yBACd;wBACD,SAAS,EAAE,IAAA,oBAAY,EAAC,SAAS,CAAC;qBACnC;iBACF,CAAC;YACJ,CAAC;SAAA;KACF,CAAC;IAEF,MAAM,UAAU,GAAe;QAC7B,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;QACzC,OAAO,EAAE,GAAG,CAAC,QAAQ;KACtB,CAAC;IAEF,OAAO,CAAC,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAClG,CAAC,CAAA,CAAC;AAnDW,QAAA,eAAe,mBAmD1B"}
@@ -0,0 +1,2 @@
1
+ export declare const getSignature: (signatureArray: Uint8Array) => string;
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/thorchain/utils.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,mBAAoB,UAAU,WAiEtD,CAAC"}