@@ -1,9 +1,9 @@
11import React, { useCallback, useMemo } from 'react';
22import { Just } from 'folktale/maybe';
3−import * as bip32 from 'bip32';
3+import { bip32 } from 'bitcoinjs-lib';
4+import { publicKeyConvert } from 'secp256k1';
45import { times } from 'lodash';
5−import TrezorConnect from 'trezor-connect';
6−import * as secp256k1 from 'secp256k1';
6+import TrezorConnect, { HDNodeResponse } from 'trezor-connect';
77import { Text, Grid, H5, CheckboxInput, SelectInput } from 'indigo-react';
88
99import { useWallet } from 'store/wallet';
@@ -63,9 +63,18 @@ export default function Trezor({ className, goHome }) {
6363 return { [FORM_ERROR]: 'Failed to authenticate with your Trezor.' };
6464 }
6565
66− const publicKey = Buffer.from(payload.publicKey, 'hex');
67− const chainCode = Buffer.from(payload.chainCode, 'hex');
68− const pub = secp256k1.publicKeyConvert(publicKey, true);
66+ // At this point, request is succesful, so payload will be
67+ // type HDNodeResponse (seems Trezor lib's TS types are slightly off)
68+ const publicKey = Buffer.from(
69+ (payload as HDNodeResponse).publicKey,
70+ 'hex'
71+ );
72+ const chainCode = Buffer.from(
73+ (payload as HDNodeResponse).chainCode,
74+ 'hex'
75+ );
76+
77+ const pub = Buffer.from(publicKeyConvert(publicKey, true));
6978 const hd = bip32.fromPublicKey(pub, chainCode);
7079
7180 const authToken = await getAuthToken({