|
1 |
| -import { errorCodeToString } from '@zondax/ledger-js' |
| 1 | +import { ResponsePayload } from '@zondax/ledger-js/dist/payload' |
2 | 2 |
|
3 | 3 | import { ED25519_SIGNATURE_LEN, IDENTITY_LEN, KEY_LENGTH, REDJUBJUB_SIGNATURE_LEN, VERSION } from './consts'
|
4 | 4 | import { IronfishKeys, KeyResponse, ResponseIdentity } from './types'
|
5 | 5 |
|
6 |
| -export function processGetKeysResponse(response: Buffer, keyType: IronfishKeys): KeyResponse { |
7 |
| - const errorCodeData = response.subarray(-2) |
8 |
| - const returnCode = errorCodeData[0] * 256 + errorCodeData[1] |
9 |
| - |
10 |
| - let requestedKey: KeyResponse = { |
11 |
| - returnCode: returnCode, |
12 |
| - errorMessage: errorCodeToString(returnCode), |
13 |
| - } |
14 |
| - |
| 6 | +export function processGetKeysResponse(response: ResponsePayload, keyType: IronfishKeys): KeyResponse { |
15 | 7 | switch (keyType) {
|
16 | 8 | case IronfishKeys.PublicAddress: {
|
17 |
| - const publicAddress = Buffer.from(response.subarray(0, KEY_LENGTH)) |
18 |
| - requestedKey = { |
19 |
| - ...requestedKey, |
| 9 | + const publicAddress = response.readBytes(KEY_LENGTH) |
| 10 | + return { |
20 | 11 | publicAddress,
|
21 | 12 | }
|
22 |
| - break |
23 | 13 | }
|
24 | 14 |
|
25 | 15 | case IronfishKeys.ViewKey: {
|
26 |
| - const viewKey = Buffer.from(response.subarray(0, 2 * KEY_LENGTH)) |
27 |
| - response = response.subarray(2 * KEY_LENGTH) |
| 16 | + const viewKey = response.readBytes(2 * KEY_LENGTH) |
| 17 | + const ivk = response.readBytes(KEY_LENGTH) |
| 18 | + const ovk = response.readBytes(KEY_LENGTH) |
28 | 19 |
|
29 |
| - const ivk = Buffer.from(response.subarray(0, KEY_LENGTH)) |
30 |
| - response = response.subarray(KEY_LENGTH) |
31 |
| - |
32 |
| - const ovk = Buffer.from(response.subarray(0, KEY_LENGTH)) |
33 |
| - response = response.subarray(KEY_LENGTH) |
34 |
| - |
35 |
| - requestedKey = { |
36 |
| - ...requestedKey, |
| 20 | + return { |
37 | 21 | viewKey,
|
38 | 22 | ivk,
|
39 | 23 | ovk,
|
40 | 24 | }
|
41 |
| - break |
42 | 25 | }
|
43 | 26 |
|
44 | 27 | case IronfishKeys.ProofGenerationKey: {
|
45 |
| - const ak = Buffer.from(response.subarray(0, KEY_LENGTH)) |
46 |
| - response = response.subarray(KEY_LENGTH) |
47 |
| - |
48 |
| - const nsk = Buffer.from(response.subarray(0, KEY_LENGTH)) |
49 |
| - response = response.subarray(KEY_LENGTH) |
| 28 | + const ak = response.readBytes(KEY_LENGTH) |
| 29 | + const nsk = response.readBytes(KEY_LENGTH) |
50 | 30 |
|
51 |
| - requestedKey = { |
52 |
| - ...requestedKey, |
| 31 | + return { |
53 | 32 | ak,
|
54 | 33 | nsk,
|
55 | 34 | }
|
56 |
| - break |
57 | 35 | }
|
58 | 36 | }
|
59 |
| - |
60 |
| - return requestedKey |
61 | 37 | }
|
62 | 38 |
|
63 |
| -export function processGetIdentityResponse(response: Buffer): ResponseIdentity { |
64 |
| - const errorCodeData = response.subarray(-2) |
65 |
| - const returnCode = errorCodeData[0] * 256 + errorCodeData[1] |
66 |
| - |
67 |
| - let getIdentityResponse: ResponseIdentity = { |
68 |
| - returnCode: returnCode, |
69 |
| - errorMessage: errorCodeToString(returnCode), |
70 |
| - } |
71 |
| - |
72 |
| - const identity = Buffer.from(response.subarray(0, IDENTITY_LEN)) |
73 |
| - |
74 |
| - getIdentityResponse = { |
75 |
| - ...getIdentityResponse, |
76 |
| - identity, |
77 |
| - } |
| 39 | +export function processGetIdentityResponse(response: ResponsePayload): ResponseIdentity { |
| 40 | + const identity = response.readBytes(IDENTITY_LEN) |
78 | 41 |
|
79 |
| - return getIdentityResponse |
| 42 | + return { identity } |
80 | 43 | }
|
0 commit comments