From 8482385bab46d46d269f24ec3358a0713cfe64d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20Renaudeau?= Date: Thu, 13 Aug 2020 12:06:57 +0200 Subject: [PATCH] Switch BCH address formatting to cashaddr Fixes #980 depends on https://github.com/LedgerHQ/ledger-live-common/pull/813 --- package.json | 14 +- src/internal/commands/getAddress.js | 35 -- src/internal/commands/index.js | 2 - src/renderer/bridge/proxy-commands.js | 14 + src/renderer/bridge/proxy.js | 7 + .../PerCurrencySelectAccount/state.js | 17 +- .../modals/ExchangeDeviceConfirm/index.js | 21 +- .../modals/Receive/steps/StepReceiveFunds.js | 22 +- yarn.lock | 340 +++++++++--------- 9 files changed, 220 insertions(+), 252 deletions(-) delete mode 100644 src/internal/commands/getAddress.js diff --git a/package.json b/package.json index 4868519bff..2f166dc4a0 100644 --- a/package.json +++ b/package.json @@ -37,15 +37,15 @@ }, "dependencies": { "@hot-loader/react-dom": "^16.13.0", - "@ledgerhq/devices": "^5.19.1", + "@ledgerhq/devices": "^5.22.0", "@ledgerhq/electron-updater": "^4.2.2", - "@ledgerhq/errors": "^5.19.1", - "@ledgerhq/hw-transport": "^5.19.1", - "@ledgerhq/hw-transport-http": "^5.19.1", - "@ledgerhq/hw-transport-node-hid-singleton": "^5.20.0", + "@ledgerhq/errors": "^5.22.0", + "@ledgerhq/hw-transport": "^5.22.0", + "@ledgerhq/hw-transport-http": "^5.22.0", + "@ledgerhq/hw-transport-node-hid-singleton": "^5.22.0", "@ledgerhq/ledger-core": "6.7.1", - "@ledgerhq/live-common": "^13.5.0", - "@ledgerhq/logs": "^5.19.1", + "@ledgerhq/live-common": "^13.7.2-cashaddr.5", + "@ledgerhq/logs": "^5.22.0", "@tippyjs/react": "^4.0.2", "@trust/keyto": "^1.0.1", "animated": "^0.2.2", diff --git a/src/internal/commands/getAddress.js b/src/internal/commands/getAddress.js deleted file mode 100644 index 16112a5937..0000000000 --- a/src/internal/commands/getAddress.js +++ /dev/null @@ -1,35 +0,0 @@ -// @flow - -import type { Observable } from "rxjs"; -import { getCryptoCurrencyById } from "@ledgerhq/live-common/lib/currencies"; -import { from } from "rxjs"; -import type { DerivationMode } from "@ledgerhq/live-common/lib/types"; -import { withDevice } from "@ledgerhq/live-common/lib/hw/deviceAccess"; -import getAddress from "@ledgerhq/live-common/lib/hw/getAddress"; - -type Input = { - currencyId: string, - devicePath: string, - path: string, - verify?: boolean, - derivationMode: DerivationMode, -}; - -type Result = { - address: string, - path: string, - publicKey: string, -}; - -const cmd = ({ currencyId, devicePath, ...options }: Input): Observable => - withDevice(devicePath)(transport => - from( - getAddress(transport, { - currency: getCryptoCurrencyById(currencyId), - // $FlowFixMe - ...options, - }), - ), - ); - -export default cmd; diff --git a/src/internal/commands/index.js b/src/internal/commands/index.js index 248c00a379..f8aaaaa312 100644 --- a/src/internal/commands/index.js +++ b/src/internal/commands/index.js @@ -3,7 +3,6 @@ import firmwarePrepare from "./firmwarePrepare"; import firmwareMain from "./firmwareMain"; import firmwareRepair from "./firmwareRepair"; import flushDevice from "./flushDevice"; -import getAddress from "./getAddress"; import getDeviceInfo from "./getDeviceInfo"; import getLatestFirmwareForDevice from "./getLatestFirmwareForDevice"; import libcoreGetVersion from "./libcoreGetVersion"; @@ -26,7 +25,6 @@ export const commandsById = { firmwareMain, firmwareRepair, flushDevice, - getAddress, getDeviceInfo, getLatestFirmwareForDevice, libcoreGetVersion, diff --git a/src/renderer/bridge/proxy-commands.js b/src/renderer/bridge/proxy-commands.js index aea0bb19c2..db6afeee21 100644 --- a/src/renderer/bridge/proxy-commands.js +++ b/src/renderer/bridge/proxy-commands.js @@ -52,6 +52,19 @@ const cmdCurrencyScanAccounts = (o: { .pipe(map(toScanAccountEventRaw)); }; +const cmdAccountReceive = (o: { + account: AccountRaw, + arg: { + deviceId: string, + subAccountId?: string, + verify?: boolean, + }, +}): Observable<{ address: string, path: string }> => { + const account = fromAccountRaw(o.account); + const bridge = bridgeImpl.getAccountBridge(account, null); + return bridge.receive(account, o.arg); +}; + const cmdAccountSync = (o: { account: AccountRaw, syncConfig: SyncConfig, @@ -125,6 +138,7 @@ const cmdAccountEstimateMaxSpendable = (o: { export const commands = { CurrencyPreload: cmdCurrencyPreload, AccountSync: cmdAccountSync, + AccountReceive: cmdAccountReceive, AccountGetTransactionStatus: cmdAccountGetTransactionStatus, AccountPrepareTransaction: cmdAccountPrepareTransaction, AccountSignOperation: cmdAccountSignOperation, diff --git a/src/renderer/bridge/proxy.js b/src/renderer/bridge/proxy.js index a5a2092ddd..1b2f80c3f6 100644 --- a/src/renderer/bridge/proxy.js +++ b/src/renderer/bridge/proxy.js @@ -57,6 +57,12 @@ export const getAccountBridge = ( syncConfig, }).pipe(map(raw => account => patchAccount(account, raw))); + const receive = (account, arg) => + command("AccountReceive")({ + account: toAccountRaw(account), + arg, + }); + const createTransaction = a => bridgeImpl.getAccountBridge(account, parentAccount).createTransaction(a); @@ -116,6 +122,7 @@ export const getAccountBridge = ( getTransactionStatus, prepareTransaction, sync, + receive, signOperation, broadcast, estimateMaxSpendable, diff --git a/src/renderer/components/PerCurrencySelectAccount/state.js b/src/renderer/components/PerCurrencySelectAccount/state.js index da86a97694..55498c5205 100644 --- a/src/renderer/components/PerCurrencySelectAccount/state.js +++ b/src/renderer/components/PerCurrencySelectAccount/state.js @@ -2,24 +2,11 @@ import { useState, useCallback, useMemo } from "react"; import type { Account, SubAccount } from "@ledgerhq/live-common/lib/types/account"; +import { makeEmptyTokenAccount } from "@ledgerhq/live-common/lib/account"; import type { CryptoCurrency, TokenCurrency } from "@ledgerhq/live-common/lib/types/currencies"; -import { BigNumber } from "bignumber.js"; type CryptoOrTokenCurrency = TokenCurrency | CryptoCurrency; -const generateTokenAccount = (account: Account, currency: TokenCurrency): SubAccount => ({ - type: "TokenAccount", - id: account.id + "+" + currency.contractAddress, - parentId: account.id, - token: currency, - balance: BigNumber(0), - operationsCount: 0, - creationDate: new Date(), - operations: [], - pendingOperations: [], - starred: false, -}); - export type AccountTuple = { account: ?Account, subAccount: ?SubAccount, @@ -40,7 +27,7 @@ function getAccountTuplesForCurrency( (subAcc: SubAccount) => subAcc.type === "TokenAccount" && subAcc.token.id === currency.id, )) || - generateTokenAccount(account, currency), + makeEmptyTokenAccount(account, currency), })); } return allAccounts diff --git a/src/renderer/modals/ExchangeDeviceConfirm/index.js b/src/renderer/modals/ExchangeDeviceConfirm/index.js index 0b7ebb54c4..cc5b4331d6 100644 --- a/src/renderer/modals/ExchangeDeviceConfirm/index.js +++ b/src/renderer/modals/ExchangeDeviceConfirm/index.js @@ -1,6 +1,7 @@ // @flow import React, { useCallback, useEffect, useState } from "react"; import type { Account, AccountLike } from "@ledgerhq/live-common/lib/types"; +import { getAccountBridge } from "@ledgerhq/live-common/lib/bridge"; import { getEnv } from "@ledgerhq/live-common/lib/env"; import { getAccountName, getMainAccount } from "@ledgerhq/live-common/lib/account"; import { createAction } from "@ledgerhq/live-common/lib/hw/actions/app"; @@ -9,7 +10,6 @@ import Modal from "~/renderer/components/Modal"; import ModalBody from "~/renderer/components/Modal/ModalBody"; import Box from "~/renderer/components/Box"; import { command } from "~/renderer/commands"; -import { WrongDeviceForAccount } from "@ledgerhq/errors"; import { useSelector } from "react-redux"; import { getCurrentDevice } from "~/renderer/reducers/devices"; import Text from "~/renderer/components/Text"; @@ -64,18 +64,13 @@ const VerifyOnDevice = ({ mainAccount, onAddressVerified, device }: VerifyOnDevi onAddressVerified(true); }, 3000); } else { - const { address } = await command("getAddress")({ - derivationMode: mainAccount.derivationMode, - currencyId: mainAccount.currency.id, - devicePath: device.path, - path: mainAccount.freshAddressPath, - verify: true, - }).toPromise(); - if (address !== mainAccount.freshAddress) { - throw new WrongDeviceForAccount(`WrongDeviceForAccount ${mainAccount.name}`, { - accountName: mainAccount.name, - }); - } + await getAccountBridge(mainAccount) + .receive(mainAccount, { + deviceId: device.path, + verify: true, + }) + .toPromise(); + onAddressVerified(true); } } catch (err) { diff --git a/src/renderer/modals/Receive/steps/StepReceiveFunds.js b/src/renderer/modals/Receive/steps/StepReceiveFunds.js index 869f8da784..3bbb6de8c4 100644 --- a/src/renderer/modals/Receive/steps/StepReceiveFunds.js +++ b/src/renderer/modals/Receive/steps/StepReceiveFunds.js @@ -2,11 +2,11 @@ import invariant from "invariant"; import React, { useEffect, useRef, useCallback, useState } from "react"; +import { getAccountBridge } from "@ledgerhq/live-common/lib/bridge"; import { getMainAccount, getAccountName } from "@ledgerhq/live-common/lib/account"; import TrackPage from "~/renderer/analytics/TrackPage"; -import { command } from "~/renderer/commands"; import ErrorDisplay from "~/renderer/components/ErrorDisplay"; -import { DisconnectedDevice, WrongDeviceForAccount } from "@ledgerhq/errors"; +import { DisconnectedDevice } from "@ledgerhq/errors"; import { Trans } from "react-i18next"; import styled from "styled-components"; import useTheme from "~/renderer/hooks/useTheme"; @@ -165,18 +165,12 @@ const StepReceiveFunds = ({ if (!device) { throw new DisconnectedDevice(); } - const { address } = await command("getAddress")({ - derivationMode: mainAccount.derivationMode, - currencyId: mainAccount.currency.id, - devicePath: device.path, - path: mainAccount.freshAddressPath, - verify: true, - }).toPromise(); - if (address !== mainAccount.freshAddress) { - throw new WrongDeviceForAccount(`WrongDeviceForAccount ${mainAccount.name}`, { - accountName: mainAccount.name, - }); - } + await getAccountBridge(mainAccount) + .receive(mainAccount, { + deviceId: device.path, + verify: true, + }) + .toPromise(); onChangeAddressVerified(true); transitionTo("receive"); } diff --git a/yarn.lock b/yarn.lock index 09970aeab9..2c0e102bcd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1282,13 +1282,14 @@ "@types/yargs" "^15.0.0" chalk "^3.0.0" -"@jest/types@^26.1.0": - version "26.1.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.1.0.tgz#f8afaaaeeb23b5cad49dd1f7779689941dcb6057" - integrity sha512-GXigDDsp6ZlNMhXQDeuy/iYCDsRIHJabWtDzvnn36+aqFfG14JmFV0e/iXxY4SP9vbXSiPNOWdehU5MeqrYHBQ== +"@jest/types@^26.3.0": + version "26.3.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.3.0.tgz#97627bf4bdb72c55346eef98e3b3f7ddc4941f71" + integrity sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" "@types/yargs" "^15.0.0" chalk "^4.0.0" @@ -1299,14 +1300,14 @@ dependencies: commander "^2.20.0" -"@ledgerhq/devices@5.19.1", "@ledgerhq/devices@^5.19.1": - version "5.19.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.19.1.tgz#d155916d38eaf09d721faa0267d5cc043190aa95" - integrity sha512-i7PU0fsOkV5JDuD+57AliJ0FIBPgSSKbH8MbTOpYRhyAWfC7e7Em0SVl2B2JbzxjJ6/ltTq2+7zjLewu/ie5AA== +"@ledgerhq/devices@5.22.0", "@ledgerhq/devices@^5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.22.0.tgz#18595f3545b57cf60e50d6e9d83095dda21f575f" + integrity sha512-oJxhee/zlHmIx66zvQQTSpIsHOiiLjALemTX9oUtB4xQwFvoiptPnBCeTDTM9teode7wzk7oE9qdUAZuat+nCg== dependencies: - "@ledgerhq/errors" "^5.19.1" - "@ledgerhq/logs" "^5.19.1" - rxjs "^6.6.0" + "@ledgerhq/errors" "^5.22.0" + "@ledgerhq/logs" "^5.22.0" + rxjs "^6.6.2" "@ledgerhq/electron-updater@^4.2.2": version "4.2.2" @@ -1322,122 +1323,122 @@ pako "^1.0.11" semver "^7.1.3" -"@ledgerhq/errors@5.19.1", "@ledgerhq/errors@^5.19.1": - version "5.19.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.19.1.tgz#3d25cc0ee92feee35415236c741ef668a106e275" - integrity sha512-9v4ishxc2doiR06E/87uJdT7LjnSpnWPftDaBXBm/6KEgjPGtGBCcRW3fkmQTWNE115e6TG9JYRiVRPuqs6GHg== +"@ledgerhq/errors@5.22.0", "@ledgerhq/errors@^5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.22.0.tgz#7327fc152d4896ddc26aada0943065db21c14880" + integrity sha512-XDT0meBn39+q+JWzUFXmiFbVYLTy+uHRFMb9napcxyZ0Q/MdKkle9/vkgtvRHjPIkGobklXpyefsgH3BZQHukA== -"@ledgerhq/hw-app-btc@^5.20.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-btc/-/hw-app-btc-5.20.0.tgz#6144b6fb13e63c95ed5ec847230fcebbff9d0993" - integrity sha512-f8+KYFZD/ttdP0fnGyyNia5ANAtvgkzaZ1Yiobo8Wz9zP/xBvwXQ9oa345N1m/jEhKDfU12X2pPTfIIk7Fpljg== +"@ledgerhq/hw-app-btc@^5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-btc/-/hw-app-btc-5.22.0.tgz#e7c7b3ea308eb4180aae2aac056ec4b1a5cb481a" + integrity sha512-8QePn/1A5W/oxYnc5qx05kXVYGDRwhgebV0H9Js0/snsv6IZ1CBy/EFMn1AAyXvplDWW49lXbzpxPb1PrtDnVg== dependencies: - "@ledgerhq/hw-transport" "^5.19.1" - "@ledgerhq/logs" "^5.19.1" + "@ledgerhq/hw-transport" "^5.22.0" + "@ledgerhq/logs" "^5.22.0" bip32-path "^0.4.2" invariant "^2.2.4" ripemd160 "2" semver "^7.3.2" sha.js "2" -"@ledgerhq/hw-app-eth@5.20.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-5.20.0.tgz#59306601c1309e15a948c9b3d06e7dc85480f48e" - integrity sha512-kL+oEJGhkd0A6GahRiDTp8RbheHYV+CQv04O+enQqIPuT++IZvSRlv03lBQNyNziX8b64/ZM+kQHWGesN7w7xg== +"@ledgerhq/hw-app-eth@5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-5.22.0.tgz#571e7d97629a9be63c5a1e5d7324cde0a7a8ffd5" + integrity sha512-O+PqA1DGsdyjZ2DFW3r6hKqtaGCq3MNqaYUmqHvdp/wTOYIlgmiBKqhaobMTA+ufa46/8CKLDheW/8WcAu7tAA== dependencies: - "@ledgerhq/errors" "^5.19.1" - "@ledgerhq/hw-transport" "^5.19.1" + "@ledgerhq/errors" "^5.22.0" + "@ledgerhq/hw-transport" "^5.22.0" bignumber.js "^9.0.0" rlp "^2.2.6" -"@ledgerhq/hw-app-str@^5.19.1": - version "5.19.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-str/-/hw-app-str-5.19.1.tgz#0f3ca1d2f912bfdd78e032d7dd69fb8a7eebbd30" - integrity sha512-9OGAUbrCRhTgHsjG17+IQ1pndLjIDft4fXdtnSU9Y+A5rrxv2rxLFh5PT0iKpNTwljIpqqpe8G8fgVB+fCpvdg== +"@ledgerhq/hw-app-str@^5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-str/-/hw-app-str-5.22.0.tgz#1e220a267f18050cd96160ed5698f0bab6464d78" + integrity sha512-P9WMGX/ArAI30VJYNuiRkOoTisoWO8KrQ6BCW/PLW271kSBKGUXSFAodjijwr9VGYcm9lV3ixIXNa7CBlmy30w== dependencies: - "@ledgerhq/hw-transport" "^5.19.1" + "@ledgerhq/hw-transport" "^5.22.0" base32.js "^0.1.0" sha.js "^2.3.6" tweetnacl "^1.0.3" -"@ledgerhq/hw-app-trx@5.19.1": - version "5.19.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-trx/-/hw-app-trx-5.19.1.tgz#359fc227914923c5f67c38c75c55ddfad45e9508" - integrity sha512-8dz5QDOtpUMhfwuTfxN4bLUbCti1/Ewf39+IB196mExrFp0MqY0VxjGKeG8oRTgniMAM0o7b4CsQ4MNUdEB1Xw== +"@ledgerhq/hw-app-trx@5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-trx/-/hw-app-trx-5.22.0.tgz#73dfc77de4b4f1cbf68c93ccf443f737b4f4a38f" + integrity sha512-ylGbOhavA3g0VEvVqihA8Gl8+y/BGxn1pl5gHbjOq7I8mnSfyOdaAKGsPqH5WwJYee3wILvgwuIDJOAhS/rxxg== dependencies: - "@ledgerhq/errors" "^5.19.1" - "@ledgerhq/hw-transport" "^5.19.1" + "@ledgerhq/errors" "^5.22.0" + "@ledgerhq/hw-transport" "^5.22.0" -"@ledgerhq/hw-app-xrp@5.19.1": - version "5.19.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-xrp/-/hw-app-xrp-5.19.1.tgz#57881b34bb5923925cc041740b57bf5d7037621f" - integrity sha512-VByfIaRH1wkegaF2umTrjI2U9z9r9TC5Le4OAUb/MAr+W6tX+r3qLkgr9JLMmW1K6L/p2oZ9sMBXHagzxd7hSA== +"@ledgerhq/hw-app-xrp@5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-xrp/-/hw-app-xrp-5.22.0.tgz#6aeca0dcae2329ebeb48a50d1d81ebef83754458" + integrity sha512-RYpufv5wl7M+0JCpdnYxKQOXsEU/wwUZ+y0LWfRCiOkErlTzQaOHDzTr+8VPY7g6uppdidghxFI3O9BO/8lQHA== dependencies: - "@ledgerhq/hw-transport" "^5.19.1" + "@ledgerhq/hw-transport" "^5.22.0" bip32-path "0.4.2" -"@ledgerhq/hw-transport-http@^5.19.1": - version "5.19.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-http/-/hw-transport-http-5.19.1.tgz#798ca6a16bee0f0b26a7fbbf1a407dd960c53c49" - integrity sha512-FdJ7DymYhpGImQZJZoXPdc6Uv4RsW7S8kFAlGTjya1LT2UbyWqVGpXAOAJQGJYr2U6J6Funttr2Wfknf5eZo5A== +"@ledgerhq/hw-transport-http@^5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-http/-/hw-transport-http-5.22.0.tgz#ca4829fcf386c2eb13219c62ed1c1c157585563f" + integrity sha512-TOdHuBj60GzPF16SeUIJAVC9bbYR9zIUYqVE1OXnORLiWB6PdzRwetm4A8Mf+k8KFcWHA4YzYfZGmEbxf41VhQ== dependencies: - "@ledgerhq/errors" "^5.19.1" - "@ledgerhq/hw-transport" "^5.19.1" - "@ledgerhq/logs" "^5.19.1" + "@ledgerhq/errors" "^5.22.0" + "@ledgerhq/hw-transport" "^5.22.0" + "@ledgerhq/logs" "^5.22.0" axios "^0.19.0" ws "6" -"@ledgerhq/hw-transport-mocker@^5.19.1": - version "5.19.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-mocker/-/hw-transport-mocker-5.19.1.tgz#8ec14f8558b735b3a07669e7be029dbb7d65f77b" - integrity sha512-MeNloEyrNLq3ca7gNC1ijO7RzIwvaQ/1wG7m5Nu/1Xhxm4qEcu3OsLnNkpnHclF+fGYRkl/oFb0mV77VMjPXaQ== +"@ledgerhq/hw-transport-mocker@^5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-mocker/-/hw-transport-mocker-5.22.0.tgz#03bbd577e56e5a1c935b67edbbc2f07a6b2d4571" + integrity sha512-SS4qfCkCjugI/NGLrWsfN+rJov/SncRSiy5VfSe1vYe8s2dFP0jQCee7qsFrh7urryIPQsTVxdO2U31whrRfig== dependencies: - "@ledgerhq/hw-transport" "^5.19.1" - "@ledgerhq/logs" "^5.19.1" + "@ledgerhq/hw-transport" "^5.22.0" + "@ledgerhq/logs" "^5.22.0" -"@ledgerhq/hw-transport-node-hid-noevents@^5.19.1": - version "5.19.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.19.1.tgz#e8cb048df95081f4b674e179020198957aae25fb" - integrity sha512-/d8xXlGFPOWLowflkHGlJr/x1fM5uBfo5puFOlzchcUH8u3HclW0E9LmpKoLPQOvlePw8AwduYeZnDQi51h+mQ== +"@ledgerhq/hw-transport-node-hid-noevents@^5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.22.0.tgz#b5a42a71664fe69bf5fae579854d10e4815a794e" + integrity sha512-6sxrqTcBEGvhVDOS5Vy3mKZgaVOKbHplxm4o/3PmtugJcvpEBvDNGXNh3PMWPtHXXYQ5E5C/qWh7Y+gYshMmTg== dependencies: - "@ledgerhq/devices" "^5.19.1" - "@ledgerhq/errors" "^5.19.1" - "@ledgerhq/hw-transport" "^5.19.1" - "@ledgerhq/logs" "^5.19.1" + "@ledgerhq/devices" "^5.22.0" + "@ledgerhq/errors" "^5.22.0" + "@ledgerhq/hw-transport" "^5.22.0" + "@ledgerhq/logs" "^5.22.0" node-hid "^1.3.0" -"@ledgerhq/hw-transport-node-hid-singleton@^5.20.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-singleton/-/hw-transport-node-hid-singleton-5.20.0.tgz#84702e09be3fcf0c686b5151bc8e0ba658378452" - integrity sha512-S/zd9xPRQ5TTM0TUmLDRVY6kpizWzjUwDku6A5tY7HKOOATYUraFKrWhufwKGPfr2M1dxXUVYHz2094Cb8dv1Q== +"@ledgerhq/hw-transport-node-hid-singleton@^5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-singleton/-/hw-transport-node-hid-singleton-5.22.0.tgz#c14aa160e4167eb57ad989709a2f4011dc4bffc2" + integrity sha512-J9ZpO5oBhcCZAUviwmp5wxvAymWxD2LS0Fn9q3ZPPD9bE5lXuQBzTyaiDH6UtxwPbD9YLkvIgfcog0d6fW8dgg== dependencies: - "@ledgerhq/devices" "^5.19.1" - "@ledgerhq/errors" "^5.19.1" - "@ledgerhq/hw-transport" "^5.19.1" - "@ledgerhq/hw-transport-node-hid-noevents" "^5.19.1" - "@ledgerhq/logs" "^5.19.1" + "@ledgerhq/devices" "^5.22.0" + "@ledgerhq/errors" "^5.22.0" + "@ledgerhq/hw-transport" "^5.22.0" + "@ledgerhq/hw-transport-node-hid-noevents" "^5.22.0" + "@ledgerhq/logs" "^5.22.0" lodash "^4.17.19" node-hid "^1.3.0" usb-detection "^4.10.0" -"@ledgerhq/hw-transport-node-speculos@^5.19.1": - version "5.19.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-speculos/-/hw-transport-node-speculos-5.19.1.tgz#b2e4ebbfd9d28c62da1930799b08a477cb9ae555" - integrity sha512-Zb1Q7NqjbKYUieQLmfZc4VWSygduyrxFvs2UAgzb0Lpnn/RNTpg+FW5qDCfUBlbEQnekFBBfzUT6+5HS3LxadQ== +"@ledgerhq/hw-transport-node-speculos@^5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-speculos/-/hw-transport-node-speculos-5.22.0.tgz#8d4fb2ccac9d05c45ab6d8e59a4efda405df3147" + integrity sha512-DLRpstiUp2rqvQ4X1V30CGAoAI0bOGiwxCOHV5p1wC8+5+T481RuyIJm+GPg0vJd9Njdqt3ZRqHc3bgWRgDPOg== dependencies: - "@ledgerhq/errors" "^5.19.1" - "@ledgerhq/hw-transport" "^5.19.1" - "@ledgerhq/logs" "^5.19.1" - rxjs "^6.6.0" + "@ledgerhq/errors" "^5.22.0" + "@ledgerhq/hw-transport" "^5.22.0" + "@ledgerhq/logs" "^5.22.0" + rxjs "^6.6.2" -"@ledgerhq/hw-transport@5.19.1", "@ledgerhq/hw-transport@^5.19.1": - version "5.19.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.19.1.tgz#8dc58b4348577e582c11aadd399abeacb78f9193" - integrity sha512-Ec2I6jI1jrxkqaCdyEXVwra/3gOnzwWhv3eJTIqzT1wKrUNeG6B27cau0ETiLdgOtbRQ8fltonCo8Od3MC2h+Q== +"@ledgerhq/hw-transport@5.22.0", "@ledgerhq/hw-transport@^5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.22.0.tgz#d627948b43005ec9e7dfe85adf9aa01e130de280" + integrity sha512-MFfkVGYMYnr6fI4XGnJQNLd36JIrRpvd5WBmVSDhCO3UKUER2fJ9koVBGc97o7yXtE5IAlJKF+nR9HZJIa0lRQ== dependencies: - "@ledgerhq/devices" "^5.19.1" - "@ledgerhq/errors" "^5.19.1" - events "^3.1.0" + "@ledgerhq/devices" "^5.22.0" + "@ledgerhq/errors" "^5.22.0" + events "^3.2.0" "@ledgerhq/ledger-core@6.7.1": version "6.7.1" @@ -1450,23 +1451,23 @@ node-pre-gyp "^0.14.0" node-pre-gyp-github "^1.4.3" -"@ledgerhq/live-common@^13.5.0": - version "13.5.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/live-common/-/live-common-13.5.0.tgz#6757d786cb7fd5eb6672fa4f787b2ad1ae9a3652" - integrity sha512-94608kF67ZEkeActj3ktOWRklcG03/J8LyQoX1wbEUjUtUgtxxFzj+khkeIYdVvqDkGw5RfiJe1eQ4Z/jyfRTQ== +"@ledgerhq/live-common@^13.7.2-cashaddr.5": + version "13.7.2-cashaddr.5" + resolved "https://registry.yarnpkg.com/@ledgerhq/live-common/-/live-common-13.7.2-cashaddr.5.tgz#9e1b90c5b6b09e6091846b4b9214194d20053c7e" + integrity sha512-eLJXljhshQkLmQ0pDMm4uTCCtSqyt+EoyRPIx2DDZKSEpOH5VR2Pky03TdaBIY38eomK46ytuXr9zqE6RvALsA== dependencies: "@ledgerhq/compressjs" "1.3.2" - "@ledgerhq/devices" "5.19.1" - "@ledgerhq/errors" "5.19.1" - "@ledgerhq/hw-app-btc" "^5.20.0" - "@ledgerhq/hw-app-eth" "5.20.0" - "@ledgerhq/hw-app-str" "^5.19.1" - "@ledgerhq/hw-app-trx" "5.19.1" - "@ledgerhq/hw-app-xrp" "5.19.1" - "@ledgerhq/hw-transport" "5.19.1" - "@ledgerhq/hw-transport-mocker" "^5.19.1" - "@ledgerhq/hw-transport-node-speculos" "^5.19.1" - "@ledgerhq/logs" "5.19.1" + "@ledgerhq/devices" "5.22.0" + "@ledgerhq/errors" "5.22.0" + "@ledgerhq/hw-app-btc" "^5.22.0" + "@ledgerhq/hw-app-eth" "5.22.0" + "@ledgerhq/hw-app-str" "^5.22.0" + "@ledgerhq/hw-app-trx" "5.22.0" + "@ledgerhq/hw-app-xrp" "5.22.0" + "@ledgerhq/hw-transport" "5.22.0" + "@ledgerhq/hw-transport-mocker" "^5.22.0" + "@ledgerhq/hw-transport-node-speculos" "^5.22.0" + "@ledgerhq/logs" "5.22.0" async "^3.2.0" axios "0.19.0" bchaddrjs "^0.4.9" @@ -1478,7 +1479,7 @@ crypto-js "^3.1.9-1" eip55 "^1.0.3" ethereumjs-tx "^1.3.7" - expect "^26.1.0" + expect "^26.3.0" invariant "^2.2.2" isomorphic-ws "^4.0.1" lodash "^4.17.19" @@ -1490,18 +1491,18 @@ ripple-binary-codec "^0.2.0" ripple-bs58check "^2.0.2" ripple-lib "1.1.2" - rxjs "^6.6.0" - rxjs-compat "^6.6.0" + rxjs "^6.6.2" + rxjs-compat "^6.6.2" secp256k1 "^4.0.2" semver "^7.3.2" sha.js "^2.4.11" triple-beam "^1.3.0" winston "^3.3.3" -"@ledgerhq/logs@5.19.1", "@ledgerhq/logs@^5.19.1": - version "5.19.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.19.1.tgz#c3df2b307331ccd373abc78b8ccea02377049256" - integrity sha512-nz33IoR3dG3DtJ46AyfLfpdMjGMkwmi21H49wcqVfNAteEe74fzO4cw9fcGMb4ENspYYtmB4LWTSp4gVPRglcg== +"@ledgerhq/logs@5.22.0", "@ledgerhq/logs@^5.22.0": + version "5.22.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.22.0.tgz#a54d6b5b391cdb4c2eacc9500feb04b90475c361" + integrity sha512-jV4mJxD1aieORm+sK9bYakQd9GMLd7KAxgt2IaxhrTU+QD5Ne47mxQOTys9p7f5w25ujs3R+Px2t3KiMRASHtg== "@octokit/auth-token@^2.4.0": version "2.4.0" @@ -1888,6 +1889,13 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" +"@types/istanbul-reports@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + dependencies: + "@types/istanbul-lib-report" "*" + "@types/json-schema@^7.0.3": version "7.0.4" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" @@ -4795,10 +4803,10 @@ diff-sequences@^25.2.6: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== -diff-sequences@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.0.0.tgz#0760059a5c287637b842bd7085311db7060e88a6" - integrity sha512-JC/eHYEC3aSS0vZGjuoc4vHA0yAQTzhQQldXMeMF+JlxLGJlCO38Gma82NV9gk1jGFz8mDzUMeaKXvjRRdJ2dg== +diff-sequences@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.3.0.tgz#62a59b1b29ab7fd27cef2a33ae52abe73042d0a2" + integrity sha512-5j5vdRcw3CNctePNYN0Wy2e/JbWT6cAYnXv5OuqPhDpyCGc0uLu2TK0zOCJWNB9kOIfYMSpIulRaDgIi4HJ6Ig== diffie-hellman@^5.0.0: version "5.0.3" @@ -5630,10 +5638,10 @@ eventemitter2@^5.0.1: resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-5.0.1.tgz#6197a095d5fb6b57e8942f6fd7eaad63a09c9452" integrity sha1-YZegldX7a1folC9v1+qtY6CclFI= -events@^3.0.0, events@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" - integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== +events@^3.0.0, events@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" + integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" @@ -5753,16 +5761,16 @@ expect@^25.4.0: jest-message-util "^25.4.0" jest-regex-util "^25.2.6" -expect@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-26.1.0.tgz#8c62e31d0f8d5a8ebb186ee81473d15dd2fbf7c8" - integrity sha512-QbH4LZXDsno9AACrN9eM0zfnby9G+OsdNgZUohjg/P0mLy1O+/bzTAJGT6VSIjVCe8yKM6SzEl/ckEOFBT7Vnw== +expect@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.3.0.tgz#6145b4999a2c9bd64a644360d0c781c44d369c54" + integrity sha512-3tC0dpPgkTGkycM9H+mMjzIhm8I3ZAOV+y1Cj3xmF9iKxDeHBCAB64hf1OY//bMzQ/AftfodNy2pQWMKpTIV8Q== dependencies: - "@jest/types" "^26.1.0" + "@jest/types" "^26.3.0" ansi-styles "^4.0.0" - jest-get-type "^26.0.0" - jest-matcher-utils "^26.1.0" - jest-message-util "^26.1.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.3.0" + jest-message-util "^26.3.0" jest-regex-util "^26.0.0" express@^4.17.1: @@ -7805,15 +7813,15 @@ jest-diff@^25.4.0: jest-get-type "^25.2.6" pretty-format "^25.4.0" -jest-diff@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.1.0.tgz#00a549bdc936c9691eb4dc25d1fbd78bf456abb2" - integrity sha512-GZpIcom339y0OXznsEKjtkfKxNdg7bVbEofK8Q6MnevTIiR1jNhDWKhRX6X0SDXJlwn3dy59nZ1z55fLkAqPWg== +jest-diff@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.3.0.tgz#485eea87b7003d34628c960c6c625ffe4de8ab04" + integrity sha512-q5OZAtnr5CbHzrhjANzc3wvROk7+rcjCUI5uqM4cjOjtscNKfbJKBs3YhsWWhsdsIZzI3gc6wOpm49r6S61beg== dependencies: chalk "^4.0.0" - diff-sequences "^26.0.0" - jest-get-type "^26.0.0" - pretty-format "^26.1.0" + diff-sequences "^26.3.0" + jest-get-type "^26.3.0" + pretty-format "^26.3.0" jest-docblock@^25.3.0: version "25.3.0" @@ -7862,10 +7870,10 @@ jest-get-type@^25.2.6: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== -jest-get-type@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.0.0.tgz#381e986a718998dbfafcd5ec05934be538db4039" - integrity sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg== +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== jest-haste-map@^25.4.0: version "25.4.0" @@ -7941,15 +7949,15 @@ jest-matcher-utils@^25.4.0: jest-get-type "^25.2.6" pretty-format "^25.4.0" -jest-matcher-utils@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.1.0.tgz#cf75a41bd413dda784f022de5a65a2a5c73a5c92" - integrity sha512-PW9JtItbYvES/xLn5mYxjMd+Rk+/kIt88EfH3N7w9KeOrHWaHrdYPnVHndGbsFGRJ2d5gKtwggCvkqbFDoouQA== +jest-matcher-utils@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.3.0.tgz#41dfecac8e7a38e38330c159789711a50edffaed" + integrity sha512-M5ZRSp6qpyzZyrLwXD2Sop7xaxm6qu/mKvqWU+BOSPTa4Y0ZEoKUYBzus/emg6kaVt7Ov9xMDLLZR1SrC8FxCw== dependencies: chalk "^4.0.0" - jest-diff "^26.1.0" - jest-get-type "^26.0.0" - pretty-format "^26.1.0" + jest-diff "^26.3.0" + jest-get-type "^26.3.0" + pretty-format "^26.3.0" jest-message-util@^25.4.0: version "25.4.0" @@ -7964,13 +7972,13 @@ jest-message-util@^25.4.0: slash "^3.0.0" stack-utils "^1.0.1" -jest-message-util@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.1.0.tgz#52573fbb8f5cea443c4d1747804d7a238a3e233c" - integrity sha512-dY0+UlldiAJwNDJ08SF0HdF32g9PkbF2NRK/+2iMPU40O6q+iSn1lgog/u0UH8ksWoPv0+gNq8cjhYO2MFtT0g== +jest-message-util@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.3.0.tgz#3bdb538af27bb417f2d4d16557606fd082d5841a" + integrity sha512-xIavRYqr4/otGOiLxLZGj3ieMmjcNE73Ui+LdSW/Y790j5acqCsAdDiLIbzHCZMpN07JOENRWX5DcU+OQ+TjTA== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.1.0" + "@jest/types" "^26.3.0" "@types/stack-utils" "^1.0.1" chalk "^4.0.0" graceful-fs "^4.2.4" @@ -10308,12 +10316,12 @@ pretty-format@^25.4.0: ansi-styles "^4.0.0" react-is "^16.12.0" -pretty-format@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.1.0.tgz#272b9cd1f1a924ab5d443dc224899d7a65cb96ec" - integrity sha512-GmeO1PEYdM+non4BKCj+XsPJjFOJIPnsLewqhDVoqY1xo0yNmDas7tC2XwpMrRAHR3MaE2hPo37deX5OisJ2Wg== +pretty-format@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.3.0.tgz#d9a7b4bb2948cabc646e6a7729b12f686f3fed36" + integrity sha512-24kRw4C2Ok8+SHquydTZZCZPF2fvANI7rChGs8sNu784+1Jkq5jVFMvNAJSLuLy6XUcP3Fnw+SscLIQag/CG8Q== dependencies: - "@jest/types" "^26.1.0" + "@jest/types" "^26.3.0" ansi-regex "^5.0.0" ansi-styles "^4.0.0" react-is "^16.12.0" @@ -11459,15 +11467,15 @@ rx-lite@*, rx-lite@^4.0.8: resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= -rxjs-compat@^6.6.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/rxjs-compat/-/rxjs-compat-6.6.0.tgz#fb86908ca9ea385befd25f6d4e451d1b0154fe5c" - integrity sha512-XvW8LM/3QnoehC74BAbC3bSiaSsfdZHC21QErD50TmdjNQhpQ6s3bM5PjcdcZWbX7mNgC3zi3BcbI9dWGJ6fsA== +rxjs-compat@^6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/rxjs-compat/-/rxjs-compat-6.6.2.tgz#23592564243cf24641a5d2e2d2acfc8f6b127186" + integrity sha512-C3V7axnAkPd91sbW1XreL8ydLM+phUcKViM76GBuT3hCzHMSQbszE/h6ajkgcrDn9j4JZ/OdzklvfAJ9MmXRcg== -rxjs@^6.3.3, rxjs@^6.5.3, rxjs@^6.5.5, rxjs@^6.6.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.0.tgz#af2901eedf02e3a83ffa7f886240ff9018bbec84" - integrity sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg== +rxjs@^6.3.3, rxjs@^6.5.3, rxjs@^6.5.5, rxjs@^6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" + integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== dependencies: tslib "^1.9.0" @@ -12773,9 +12781,9 @@ truncate-utf8-bytes@^1.0.0: utf8-byte-length "^1.0.1" tslib@^1.8.1, tslib@^1.9.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" - integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== + version "1.13.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" + integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== tsutils@^3.17.1: version "3.17.1"