Safe apps: Extract Iframe messenger to a hook (#1219)
* add useLegalConsent hook in apps * useAppList hook wip * fix selecting first app * update persisting app logic * update saveToStorage type * fix crash on apps tab * add appframe comp * add handleIframeLoad func * reuse selectedApp variable in hook * remove initialAppSelected * add types for apps component * fix history types * extract useIframeMessenger hook * fix safe-react-components version * useIframeMessageHandler * update safe-apps-sdk * Fix alignment between app list and app iframe * send safe info on handshake * fix naming/types for url utils * fix types and code cleanup * remove operations * dep bump Co-authored-by: Daniel Sanchez <daniel.sanchez@gnosis.pm>
This commit is contained in:
parent
883111f9b9
commit
7a4773511c
23
package.json
23
package.json
|
@ -162,8 +162,9 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@gnosis.pm/safe-contracts": "1.1.1-dev.2",
|
"@gnosis.pm/safe-apps-sdk": "0.3.1",
|
||||||
"@gnosis.pm/safe-react-components": "https://github.com/gnosis/safe-react-components.git#45c746a",
|
"@gnosis.pm/safe-contracts": "1.1.1-dev.2",
|
||||||
|
"@gnosis.pm/safe-react-components": "https://github.com/gnosis/safe-react-components.git#45c746a12661b9c38e839e76022b6a0a92285db7",
|
||||||
"@gnosis.pm/util-contracts": "2.0.6",
|
"@gnosis.pm/util-contracts": "2.0.6",
|
||||||
"@ledgerhq/hw-transport-node-hid": "5.19.1",
|
"@ledgerhq/hw-transport-node-hid": "5.19.1",
|
||||||
"@material-ui/core": "4.11.0",
|
"@material-ui/core": "4.11.0",
|
||||||
|
@ -173,7 +174,7 @@
|
||||||
"async-sema": "^3.1.0",
|
"async-sema": "^3.1.0",
|
||||||
"axios": "0.19.2",
|
"axios": "0.19.2",
|
||||||
"bignumber.js": "9.0.0",
|
"bignumber.js": "9.0.0",
|
||||||
"bnc-onboard": "1.10.3",
|
"bnc-onboard": "1.11.0",
|
||||||
"classnames": "^2.2.6",
|
"classnames": "^2.2.6",
|
||||||
"concurrently": "^5.2.0",
|
"concurrently": "^5.2.0",
|
||||||
"connected-react-router": "6.8.0",
|
"connected-react-router": "6.8.0",
|
||||||
|
@ -229,21 +230,21 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@testing-library/jest-dom": "5.11.2",
|
"@testing-library/jest-dom": "5.11.2",
|
||||||
"@testing-library/react": "10.4.7",
|
"@testing-library/react": "10.4.8",
|
||||||
"@testing-library/user-event": "12.0.17",
|
"@testing-library/user-event": "12.1.0",
|
||||||
"@typechain/web3-v1": "^1.0.0",
|
"@typechain/web3-v1": "^1.0.0",
|
||||||
"@types/history": "4.6.2",
|
"@types/history": "4.6.2",
|
||||||
"@types/jest": "^26.0.7",
|
"@types/jest": "^26.0.9",
|
||||||
"@types/lodash.memoize": "^4.1.6",
|
"@types/lodash.memoize": "^4.1.6",
|
||||||
"@types/node": "14.0.27",
|
"@types/node": "14.0.27",
|
||||||
"@types/react": "^16.9.43",
|
"@types/react": "^16.9.44",
|
||||||
"@types/react-dom": "^16.9.6",
|
"@types/react-dom": "^16.9.6",
|
||||||
"@types/react-redux": "^7.1.9",
|
"@types/react-redux": "^7.1.9",
|
||||||
"@types/react-router-dom": "^5.1.5",
|
"@types/react-router-dom": "^5.1.5",
|
||||||
"@types/styled-components": "^5.1.1",
|
"@types/styled-components": "^5.1.2",
|
||||||
"@typescript-eslint/eslint-plugin": "3.7.1",
|
"@typescript-eslint/eslint-plugin": "3.8.0",
|
||||||
"@typescript-eslint/parser": "3.7.1",
|
"@typescript-eslint/parser": "3.8.0",
|
||||||
"autoprefixer": "9.8.5",
|
"autoprefixer": "9.8.6",
|
||||||
"cross-env": "^7.0.2",
|
"cross-env": "^7.0.2",
|
||||||
"dotenv": "^8.2.0",
|
"dotenv": "^8.2.0",
|
||||||
"dotenv-expand": "^5.1.0",
|
"dotenv-expand": "^5.1.0",
|
||||||
|
|
|
@ -11,6 +11,10 @@ const Wrapper = styled.div``
|
||||||
const Item = styled.div`
|
const Item = styled.div`
|
||||||
border-bottom: solid 2px rgb(232, 231, 230);
|
border-bottom: solid 2px rgb(232, 231, 230);
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: flex-end;
|
align-items: flex-end;
|
||||||
|
|
|
@ -7,17 +7,17 @@ import { SafeApp } from 'src/routes/safe/components/Apps/types.d'
|
||||||
import { getAppInfoFromUrl, getIpfsLinkFromEns, uniqueApp } from 'src/routes/safe/components/Apps/utils'
|
import { getAppInfoFromUrl, getIpfsLinkFromEns, uniqueApp } from 'src/routes/safe/components/Apps/utils'
|
||||||
import { composeValidators, required } from 'src/components/forms/validator'
|
import { composeValidators, required } from 'src/components/forms/validator'
|
||||||
import Field from 'src/components/forms/Field'
|
import Field from 'src/components/forms/Field'
|
||||||
import { isValid as isURLValid } from 'src/utils/url'
|
import { isValidURL } from 'src/utils/url'
|
||||||
import { isValidEnsName } from 'src/logic/wallets/ethAddresses'
|
import { isValidEnsName } from 'src/logic/wallets/ethAddresses'
|
||||||
import { useDebounce } from 'src/routes/safe/container/hooks/useDebounce'
|
import { useDebounce } from 'src/routes/safe/container/hooks/useDebounce'
|
||||||
|
|
||||||
const validateUrl = (url: string): string | undefined => (isURLValid(url) ? undefined : 'Invalid URL')
|
const validateUrl = (url: string): string | undefined => (isValidURL(url) ? undefined : 'Invalid URL')
|
||||||
|
|
||||||
export const appUrlResolver = createDecorator({
|
export const appUrlResolver = createDecorator({
|
||||||
field: 'appUrl',
|
field: 'appUrl',
|
||||||
updates: {
|
updates: {
|
||||||
appUrl: async (appUrl: string): Promise<string | undefined> => {
|
appUrl: async (appUrl: string): Promise<string | undefined> => {
|
||||||
const ensContent = !isURLValid(appUrl) && isValidEnsName(appUrl) && (await getIpfsLinkFromEns(appUrl))
|
const ensContent = !isValidURL(appUrl) && isValidEnsName(appUrl) && (await getIpfsLinkFromEns(appUrl))
|
||||||
|
|
||||||
if (ensContent) {
|
if (ensContent) {
|
||||||
return ensContent
|
return ensContent
|
||||||
|
@ -40,7 +40,7 @@ export const AppInfoUpdater = ({ onAppInfo }: { onAppInfo: (appInfo: SafeApp) =>
|
||||||
onAppInfo({ ...appInfo })
|
onAppInfo({ ...appInfo })
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isURLValid(debouncedValue)) {
|
if (isValidURL(debouncedValue)) {
|
||||||
updateAppInfo()
|
updateAppInfo()
|
||||||
}
|
}
|
||||||
}, [debouncedValue, onAppInfo])
|
}, [debouncedValue, onAppInfo])
|
||||||
|
|
|
@ -0,0 +1,92 @@
|
||||||
|
import React, { forwardRef } from 'react'
|
||||||
|
import styled from 'styled-components'
|
||||||
|
import { FixedIcon, Loader, Title } from '@gnosis.pm/safe-react-components'
|
||||||
|
import { useHistory } from 'react-router-dom'
|
||||||
|
import { SAFELIST_ADDRESS } from 'src/routes/routes'
|
||||||
|
import { useLegalConsent } from '../hooks/useLegalConsent'
|
||||||
|
import { SafeApp } from '../types'
|
||||||
|
import LegalDisclaimer from './LegalDisclaimer'
|
||||||
|
|
||||||
|
const StyledIframe = styled.iframe`
|
||||||
|
padding: 15px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
`
|
||||||
|
|
||||||
|
const LoadingContainer = styled.div`
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
`
|
||||||
|
|
||||||
|
const IframeWrapper = styled.div`
|
||||||
|
position: relative;
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
`
|
||||||
|
|
||||||
|
const Centered = styled.div`
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
flex-direction: column;
|
||||||
|
`
|
||||||
|
|
||||||
|
type AppFrameProps = {
|
||||||
|
selectedApp: SafeApp | undefined
|
||||||
|
safeAddress: string
|
||||||
|
network: string
|
||||||
|
granted: boolean
|
||||||
|
appIsLoading: boolean
|
||||||
|
onIframeLoad: () => void
|
||||||
|
}
|
||||||
|
|
||||||
|
const AppFrame = forwardRef<HTMLIFrameElement, AppFrameProps>(function AppFrameComponent(
|
||||||
|
{ selectedApp, safeAddress, network, appIsLoading, granted, onIframeLoad },
|
||||||
|
iframeRef,
|
||||||
|
): React.ReactElement {
|
||||||
|
const history = useHistory()
|
||||||
|
const { consentReceived, onConsentReceipt } = useLegalConsent()
|
||||||
|
const redirectToBalance = () => history.push(`${SAFELIST_ADDRESS}/${safeAddress}/balances`)
|
||||||
|
|
||||||
|
if (!selectedApp) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!consentReceived) {
|
||||||
|
return <LegalDisclaimer onCancel={redirectToBalance} onConfirm={onConsentReceipt} />
|
||||||
|
}
|
||||||
|
|
||||||
|
if (network === 'UNKNOWN' || !granted) {
|
||||||
|
return (
|
||||||
|
<Centered style={{ height: '476px' }}>
|
||||||
|
<FixedIcon type="notOwner" />
|
||||||
|
<Title size="xs">To use apps, you must be an owner of this Safe</Title>
|
||||||
|
</Centered>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<IframeWrapper>
|
||||||
|
{appIsLoading && (
|
||||||
|
<LoadingContainer>
|
||||||
|
<Loader size="md" />
|
||||||
|
</LoadingContainer>
|
||||||
|
)}
|
||||||
|
<StyledIframe
|
||||||
|
frameBorder="0"
|
||||||
|
id={`iframe-${selectedApp.name}`}
|
||||||
|
ref={iframeRef}
|
||||||
|
src={selectedApp.url}
|
||||||
|
title={selectedApp.name}
|
||||||
|
onLoad={onIframeLoad}
|
||||||
|
/>
|
||||||
|
</IframeWrapper>
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
export default AppFrame
|
|
@ -1,5 +1,6 @@
|
||||||
import { Icon, ModalFooterConfirmation, Text, Title } from '@gnosis.pm/safe-react-components'
|
import { Icon, ModalFooterConfirmation, Text, Title } from '@gnosis.pm/safe-react-components'
|
||||||
import React, { ReactElement } from 'react'
|
import { Transaction } from '@gnosis.pm/safe-apps-sdk'
|
||||||
|
import React from 'react'
|
||||||
import styled from 'styled-components'
|
import styled from 'styled-components'
|
||||||
|
|
||||||
import AddressInfo from 'src/components/AddressInfo'
|
import AddressInfo from 'src/components/AddressInfo'
|
||||||
|
@ -12,22 +13,9 @@ import Bold from 'src/components/layout/Bold'
|
||||||
import Heading from 'src/components/layout/Heading'
|
import Heading from 'src/components/layout/Heading'
|
||||||
import Img from 'src/components/layout/Img'
|
import Img from 'src/components/layout/Img'
|
||||||
import { getEthAsToken } from 'src/logic/tokens/utils/tokenHelpers'
|
import { getEthAsToken } from 'src/logic/tokens/utils/tokenHelpers'
|
||||||
|
import { OpenModalArgs } from 'src/routes/safe/components/Layout/interfaces'
|
||||||
import { humanReadableValue } from 'src/logic/tokens/utils/humanReadableValue'
|
import { humanReadableValue } from 'src/logic/tokens/utils/humanReadableValue'
|
||||||
|
|
||||||
export type SafeAppTx = {
|
|
||||||
to: string
|
|
||||||
value: string | number
|
|
||||||
data: string
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: This should be exported by safe-rect-components
|
|
||||||
type GenericModalProps = {
|
|
||||||
title: ReactElement
|
|
||||||
body: ReactElement
|
|
||||||
footer: ReactElement
|
|
||||||
onClose: () => void
|
|
||||||
}
|
|
||||||
|
|
||||||
const Wrapper = styled.div`
|
const Wrapper = styled.div`
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
`
|
`
|
||||||
|
@ -56,7 +44,7 @@ const StyledTextBox = styled(TextBox)`
|
||||||
max-width: 444px;
|
max-width: 444px;
|
||||||
`
|
`
|
||||||
|
|
||||||
const isTxValid = (t: SafeAppTx): boolean => {
|
const isTxValid = (t: Transaction): boolean => {
|
||||||
if (!['string', 'number'].includes(typeof t.value)) {
|
if (!['string', 'number'].includes(typeof t.value)) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
@ -75,11 +63,11 @@ const confirmTransactions = (
|
||||||
ethBalance: string,
|
ethBalance: string,
|
||||||
nameApp: string,
|
nameApp: string,
|
||||||
iconApp: string,
|
iconApp: string,
|
||||||
txs: SafeAppTx[],
|
txs: Transaction[],
|
||||||
openModal: (modalInfo: GenericModalProps) => void,
|
openModal: (modalInfo: OpenModalArgs) => void,
|
||||||
closeModal: () => void,
|
closeModal: () => void,
|
||||||
onConfirm: () => void,
|
onConfirm: () => void,
|
||||||
): any => {
|
): void => {
|
||||||
const areTxsMalformed = txs.some((t) => !isTxValid(t))
|
const areTxsMalformed = txs.some((t) => !isTxValid(t))
|
||||||
|
|
||||||
const title = <ModalTitle iconUrl={iconApp} title={nameApp} />
|
const title = <ModalTitle iconUrl={iconApp} title={nameApp} />
|
||||||
|
|
|
@ -1,52 +1,131 @@
|
||||||
import { useEffect } from 'react'
|
import { useSnackbar } from 'notistack'
|
||||||
|
import {
|
||||||
|
InterfaceMessages,
|
||||||
|
InterfaceMessageToPayload,
|
||||||
|
SDKMessages,
|
||||||
|
SDKMessageToPayload,
|
||||||
|
SDK_MESSAGES,
|
||||||
|
INTERFACE_MESSAGES,
|
||||||
|
} from '@gnosis.pm/safe-apps-sdk'
|
||||||
|
import { useDispatch, useSelector } from 'react-redux'
|
||||||
|
import { useEffect, useCallback, MutableRefObject } from 'react'
|
||||||
|
import { OpenModalArgs } from 'src/routes/safe/components/Layout/interfaces'
|
||||||
|
import {
|
||||||
|
safeEthBalanceSelector,
|
||||||
|
safeNameSelector,
|
||||||
|
safeParamAddressFromStateSelector,
|
||||||
|
} from 'src/routes/safe/store/selectors'
|
||||||
|
import { networkSelector } from 'src/logic/wallets/store/selectors'
|
||||||
|
import { SafeApp } from 'src/routes/safe/components/Apps/types'
|
||||||
|
|
||||||
|
import sendTransactions from '../sendTransactions'
|
||||||
|
import confirmTransactions from '../confirmTransactions'
|
||||||
|
|
||||||
|
type ReturnType = {
|
||||||
|
sendMessageToIframe: <T extends keyof InterfaceMessages>(messageId: T, data: InterfaceMessageToPayload[T]) => void
|
||||||
|
}
|
||||||
|
|
||||||
|
interface CustomMessageEvent extends MessageEvent {
|
||||||
|
data: {
|
||||||
|
messageId: keyof SDKMessages
|
||||||
|
data: SDKMessageToPayload[keyof SDKMessages]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const useIframeMessageHandler = (
|
||||||
|
selectedApp: SafeApp | undefined,
|
||||||
|
openModal: (modal: OpenModalArgs) => void,
|
||||||
|
closeModal: () => void,
|
||||||
|
iframeRef: MutableRefObject<HTMLIFrameElement>,
|
||||||
|
): ReturnType => {
|
||||||
|
const { enqueueSnackbar, closeSnackbar } = useSnackbar()
|
||||||
|
const safeName = useSelector(safeNameSelector)
|
||||||
|
const safeAddress = useSelector(safeParamAddressFromStateSelector)
|
||||||
|
const ethBalance = useSelector(safeEthBalanceSelector)
|
||||||
|
const network = useSelector(networkSelector)
|
||||||
|
const dispatch = useDispatch()
|
||||||
|
|
||||||
|
const sendMessageToIframe = useCallback(
|
||||||
|
function <T extends keyof InterfaceMessages>(messageId: T, data: InterfaceMessageToPayload[T]) {
|
||||||
|
if (iframeRef?.current && selectedApp) {
|
||||||
|
iframeRef.current.contentWindow.postMessage({ messageId, data }, selectedApp.url)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[iframeRef, selectedApp],
|
||||||
|
)
|
||||||
|
|
||||||
const useIframeMessageHandler = (): void => {
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// const handleIframeMessage = (data) => {
|
const handleIframeMessage = (msg: CustomMessageEvent) => {
|
||||||
// if (!data || !data.messageId) {
|
if (!msg?.data.messageId) {
|
||||||
// console.error('ThirdPartyApp: A message was received without message id.')
|
console.error('ThirdPartyApp: A message was received without message id.')
|
||||||
// return
|
return
|
||||||
// }
|
}
|
||||||
// switch (data.messageId) {
|
switch (msg.data.messageId) {
|
||||||
// case operations.SEND_TRANSACTIONS: {
|
case SDK_MESSAGES.SEND_TRANSACTIONS: {
|
||||||
// const onConfirm = async () => {
|
const onConfirm = async () => {
|
||||||
// closeModal()
|
closeModal()
|
||||||
// await sendTransactions(dispatch, safeAddress, data.data, enqueueSnackbar, closeSnackbar, selectedApp.id)
|
await sendTransactions(dispatch, safeAddress, msg.data.data, enqueueSnackbar, closeSnackbar, selectedApp.id)
|
||||||
// }
|
}
|
||||||
// confirmTransactions(
|
confirmTransactions(
|
||||||
// safeAddress,
|
safeAddress,
|
||||||
// safeName,
|
safeName,
|
||||||
// ethBalance,
|
ethBalance,
|
||||||
// selectedApp.name,
|
selectedApp.name,
|
||||||
// selectedApp.iconUrl,
|
selectedApp.iconUrl,
|
||||||
// data.data,
|
msg.data.data,
|
||||||
// openModal,
|
openModal,
|
||||||
// closeModal,
|
closeModal,
|
||||||
// onConfirm,
|
onConfirm,
|
||||||
// )
|
)
|
||||||
// break
|
break
|
||||||
// }
|
}
|
||||||
// default: {
|
|
||||||
// console.error(`ThirdPartyApp: A message was received with an unknown message id ${data.messageId}.`)
|
case SDK_MESSAGES.SAFE_APP_SDK_INITIALIZED: {
|
||||||
// break
|
sendMessageToIframe(INTERFACE_MESSAGES.ON_SAFE_INFO, {
|
||||||
// }
|
safeAddress,
|
||||||
// }
|
network: network,
|
||||||
// }
|
ethBalance,
|
||||||
// const onIframeMessage = async ({ data, origin }) => {
|
})
|
||||||
// if (origin === window.origin) {
|
break
|
||||||
// return
|
}
|
||||||
// }
|
default: {
|
||||||
// if (!selectedApp.url.includes(origin)) {
|
console.error(`ThirdPartyApp: A message was received with an unknown message id ${msg.data.messageId}.`)
|
||||||
// console.error(`ThirdPartyApp: A message was received from an unknown origin ${origin}`)
|
break
|
||||||
// return
|
}
|
||||||
// }
|
}
|
||||||
// handleIframeMessage(data)
|
}
|
||||||
// }
|
const onIframeMessage = async (message: CustomMessageEvent) => {
|
||||||
// window.addEventListener('message', onIframeMessage)
|
if (message.origin === window.origin) {
|
||||||
// return () => {
|
return
|
||||||
// window.removeEventListener('message', onIframeMessage)
|
}
|
||||||
// }
|
if (!selectedApp.url.includes(message.origin)) {
|
||||||
}, [])
|
console.error(`ThirdPartyApp: A message was received from an unknown origin ${message.origin}`)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
handleIframeMessage(message)
|
||||||
|
}
|
||||||
|
|
||||||
|
window.addEventListener('message', onIframeMessage)
|
||||||
|
return () => {
|
||||||
|
window.removeEventListener('message', onIframeMessage)
|
||||||
|
}
|
||||||
|
}, [
|
||||||
|
closeModal,
|
||||||
|
closeSnackbar,
|
||||||
|
dispatch,
|
||||||
|
enqueueSnackbar,
|
||||||
|
ethBalance,
|
||||||
|
network,
|
||||||
|
openModal,
|
||||||
|
safeAddress,
|
||||||
|
safeName,
|
||||||
|
selectedApp,
|
||||||
|
sendMessageToIframe,
|
||||||
|
])
|
||||||
|
|
||||||
|
return {
|
||||||
|
sendMessageToIframe,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export { useIframeMessageHandler }
|
export { useIframeMessageHandler }
|
||||||
|
|
|
@ -1,85 +1,63 @@
|
||||||
import { Card, FixedIcon, IconText, Loader, Menu, Title } from '@gnosis.pm/safe-react-components'
|
import React, { useCallback, useEffect, useRef, useState, useMemo } from 'react'
|
||||||
import { withSnackbar } from 'notistack'
|
import { Networks, INTERFACE_MESSAGES } from '@gnosis.pm/safe-apps-sdk'
|
||||||
import React, { useCallback, useEffect, useState, useMemo } from 'react'
|
import { Card, IconText, Loader, Menu, Title } from '@gnosis.pm/safe-react-components'
|
||||||
import { useDispatch, useSelector } from 'react-redux'
|
import { useSelector } from 'react-redux'
|
||||||
import { useHistory } from 'react-router-dom'
|
import styled, { css } from 'styled-components'
|
||||||
import styled from 'styled-components'
|
|
||||||
|
|
||||||
import ManageApps from './components/ManageApps'
|
import ManageApps from './components/ManageApps'
|
||||||
import confirmTransactions from './confirmTransactions'
|
import AppFrame from './components/AppFrame'
|
||||||
import sendTransactions from './sendTransactions'
|
|
||||||
import LegalDisclaimer from './components/LegalDisclaimer'
|
|
||||||
import { useLegalConsent } from './hooks/useLegalConsent'
|
|
||||||
import { useAppList } from './hooks/useAppList'
|
import { useAppList } from './hooks/useAppList'
|
||||||
|
import { OpenModalArgs } from 'src/routes/safe/components/Layout/interfaces'
|
||||||
|
|
||||||
import LCL from 'src/components/ListContentLayout'
|
import LCL from 'src/components/ListContentLayout'
|
||||||
import { networkSelector } from 'src/logic/wallets/store/selectors'
|
import { networkSelector } from 'src/logic/wallets/store/selectors'
|
||||||
import { SAFELIST_ADDRESS } from 'src/routes/routes'
|
|
||||||
import { grantedSelector } from 'src/routes/safe/container/selector'
|
import { grantedSelector } from 'src/routes/safe/container/selector'
|
||||||
import {
|
import { safeEthBalanceSelector, safeParamAddressFromStateSelector } from 'src/routes/safe/store/selectors'
|
||||||
safeEthBalanceSelector,
|
import { isSameURL } from 'src/utils/url'
|
||||||
safeNameSelector,
|
import { useIframeMessageHandler } from './hooks/useIframeMessageHandler'
|
||||||
safeParamAddressFromStateSelector,
|
|
||||||
} from 'src/routes/safe/store/selectors'
|
|
||||||
import { isSameHref } from 'src/utils/url'
|
|
||||||
|
|
||||||
const StyledCard = styled(Card)`
|
const centerCSS = css`
|
||||||
margin-bottom: 24px;
|
|
||||||
`
|
|
||||||
const StyledIframe = styled.iframe`
|
|
||||||
padding: 15px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
`
|
|
||||||
const Centered = styled.div`
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
flex-direction: column;
|
|
||||||
`
|
`
|
||||||
|
|
||||||
const LoadingContainer = styled.div`
|
const LoadingContainer = styled.div`
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
${centerCSS};
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
`
|
`
|
||||||
|
|
||||||
const CenteredMT = styled(Centered)`
|
const StyledCard = styled(Card)`
|
||||||
|
margin-bottom: 24px;
|
||||||
|
${centerCSS};
|
||||||
|
`
|
||||||
|
|
||||||
|
const CenteredMT = styled.div`
|
||||||
|
${centerCSS};
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
`
|
`
|
||||||
|
|
||||||
const IframeWrapper = styled.div`
|
type AppsProps = {
|
||||||
position: relative;
|
closeModal: () => void
|
||||||
height: 100%;
|
openModal: (modal: OpenModalArgs) => void
|
||||||
width: 100%;
|
|
||||||
overflow: hidden;
|
|
||||||
`
|
|
||||||
const operations = {
|
|
||||||
ON_SAFE_INFO: 'ON_SAFE_INFO',
|
|
||||||
SAFE_APP_SDK_INITIALIZED: 'SAFE_APP_SDK_INITIALIZED',
|
|
||||||
SEND_TRANSACTIONS: 'SEND_TRANSACTIONS',
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function Apps({ closeModal, closeSnackbar, enqueueSnackbar, openModal }) {
|
const Apps = ({ closeModal, openModal }: AppsProps): React.ReactElement => {
|
||||||
const { appList, loadingAppList, onAppToggle, onAppAdded } = useAppList()
|
const { appList, loadingAppList, onAppToggle, onAppAdded } = useAppList()
|
||||||
|
|
||||||
const [appIsLoading, setAppIsLoading] = useState<boolean>(true)
|
const [appIsLoading, setAppIsLoading] = useState<boolean>(true)
|
||||||
const [selectedAppId, setSelectedAppId] = useState<string>()
|
const [selectedAppId, setSelectedAppId] = useState<string>()
|
||||||
const [iframeEl, setIframeEl] = useState<HTMLIFrameElement | null>(null)
|
const iframeRef = useRef<HTMLIFrameElement>()
|
||||||
|
|
||||||
const history = useHistory()
|
|
||||||
const granted = useSelector(grantedSelector)
|
const granted = useSelector(grantedSelector)
|
||||||
const safeName = useSelector(safeNameSelector)
|
|
||||||
const safeAddress = useSelector(safeParamAddressFromStateSelector)
|
const safeAddress = useSelector(safeParamAddressFromStateSelector)
|
||||||
const network = useSelector(networkSelector)
|
const network = useSelector(networkSelector)
|
||||||
const ethBalance = useSelector(safeEthBalanceSelector)
|
const ethBalance = useSelector(safeEthBalanceSelector)
|
||||||
const dispatch = useDispatch()
|
|
||||||
const { consentReceived, onConsentReceipt } = useLegalConsent()
|
|
||||||
|
|
||||||
const selectedApp = useMemo(() => appList.find((app) => app.id === selectedAppId), [appList, selectedAppId])
|
const selectedApp = useMemo(() => appList.find((app) => app.id === selectedAppId), [appList, selectedAppId])
|
||||||
|
const enabledApps = useMemo(() => appList.filter((a) => !a.disabled), [appList])
|
||||||
|
const { sendMessageToIframe } = useIframeMessageHandler(selectedApp, openModal, closeModal, iframeRef)
|
||||||
|
|
||||||
const onSelectApp = useCallback(
|
const onSelectApp = useCallback(
|
||||||
(appId) => {
|
(appId) => {
|
||||||
|
@ -108,151 +86,19 @@ function Apps({ closeModal, closeSnackbar, enqueueSnackbar, openModal }) {
|
||||||
}
|
}
|
||||||
}, [appList, selectedApp, selectedAppId])
|
}, [appList, selectedApp, selectedAppId])
|
||||||
|
|
||||||
const iframeRef = useCallback((node) => {
|
const handleIframeLoad = useCallback(() => {
|
||||||
if (node !== null) {
|
const iframe = iframeRef.current
|
||||||
setIframeEl(node)
|
if (!iframe || !selectedApp || !isSameURL(iframe.src, selectedApp.url)) {
|
||||||
}
|
|
||||||
}, [])
|
|
||||||
|
|
||||||
const redirectToBalance = () => history.push(`${SAFELIST_ADDRESS}/${safeAddress}/balances`)
|
|
||||||
|
|
||||||
const getContent = () => {
|
|
||||||
if (!selectedApp) {
|
|
||||||
return null
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!consentReceived) {
|
|
||||||
return <LegalDisclaimer onCancel={redirectToBalance} onConfirm={onConsentReceipt} />
|
|
||||||
}
|
|
||||||
|
|
||||||
if (network === 'UNKNOWN' || !granted) {
|
|
||||||
return (
|
|
||||||
<Centered style={{ height: '476px' }}>
|
|
||||||
<FixedIcon type="notOwner" />
|
|
||||||
<Title size="xs">To use apps, you must be an owner of this Safe</Title>
|
|
||||||
</Centered>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
|
||||||
<IframeWrapper>
|
|
||||||
{appIsLoading && (
|
|
||||||
<LoadingContainer>
|
|
||||||
<Loader size="md" />
|
|
||||||
</LoadingContainer>
|
|
||||||
)}
|
|
||||||
<StyledIframe
|
|
||||||
frameBorder="0"
|
|
||||||
id={`iframe-${selectedApp.name}`}
|
|
||||||
ref={iframeRef}
|
|
||||||
src={selectedApp.url}
|
|
||||||
title={selectedApp.name}
|
|
||||||
/>
|
|
||||||
</IframeWrapper>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
const enabledApps = useMemo(() => appList.filter((a) => !a.disabled), [appList])
|
|
||||||
|
|
||||||
const sendMessageToIframe = useCallback(
|
|
||||||
(messageId, data) => {
|
|
||||||
if (iframeEl && selectedApp) {
|
|
||||||
iframeEl.contentWindow.postMessage({ messageId, data }, selectedApp.url)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
[iframeEl, selectedApp],
|
|
||||||
)
|
|
||||||
|
|
||||||
// handle messages from iframe
|
|
||||||
useEffect(() => {
|
|
||||||
const handleIframeMessage = (data) => {
|
|
||||||
if (!data || !data.messageId) {
|
|
||||||
console.error('ThirdPartyApp: A message was received without message id.')
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (data.messageId) {
|
|
||||||
case operations.SEND_TRANSACTIONS: {
|
|
||||||
const onConfirm = async () => {
|
|
||||||
closeModal()
|
|
||||||
|
|
||||||
await sendTransactions(dispatch, safeAddress, data.data, enqueueSnackbar, closeSnackbar, selectedApp.id)
|
|
||||||
}
|
|
||||||
|
|
||||||
confirmTransactions(
|
|
||||||
safeAddress,
|
|
||||||
safeName,
|
|
||||||
ethBalance,
|
|
||||||
selectedApp.name,
|
|
||||||
selectedApp.iconUrl,
|
|
||||||
data.data,
|
|
||||||
openModal,
|
|
||||||
closeModal,
|
|
||||||
onConfirm,
|
|
||||||
)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
case operations.SAFE_APP_SDK_INITIALIZED: {
|
|
||||||
sendMessageToIframe(operations.ON_SAFE_INFO, {
|
|
||||||
safeAddress,
|
|
||||||
network,
|
|
||||||
ethBalance,
|
|
||||||
})
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
default: {
|
|
||||||
console.error(`ThirdPartyApp: A message was received with an unknown message id ${data.messageId}.`)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const onIframeMessage = async ({ data, origin }) => {
|
|
||||||
if (origin === window.origin) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!selectedApp.url.includes(origin)) {
|
|
||||||
console.error(`ThirdPartyApp: A message was received from an unknown origin ${origin}`)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
handleIframeMessage(data)
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('message', onIframeMessage)
|
|
||||||
|
|
||||||
return () => {
|
|
||||||
window.removeEventListener('message', onIframeMessage)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
// on iframe change
|
|
||||||
useEffect(() => {
|
|
||||||
const sendMessageToIframe = (messageId, data) => {
|
|
||||||
iframeEl.contentWindow.postMessage({ messageId, data }, selectedApp.url)
|
|
||||||
}
|
|
||||||
const onIframeLoaded = () => {
|
|
||||||
setAppIsLoading(false)
|
|
||||||
sendMessageToIframe(operations.ON_SAFE_INFO, {
|
|
||||||
safeAddress,
|
|
||||||
network,
|
|
||||||
ethBalance,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!iframeEl || !selectedApp || !isSameHref(iframeEl.src, selectedApp.url)) {
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
iframeEl.addEventListener('load', onIframeLoaded)
|
setAppIsLoading(false)
|
||||||
|
sendMessageToIframe(INTERFACE_MESSAGES.ON_SAFE_INFO, {
|
||||||
return () => {
|
safeAddress,
|
||||||
iframeEl.removeEventListener('load', onIframeLoaded)
|
network: network as Networks,
|
||||||
}
|
ethBalance,
|
||||||
}, [ethBalance, iframeEl, network, safeAddress, selectedApp])
|
})
|
||||||
|
}, [ethBalance, network, safeAddress, selectedApp, sendMessageToIframe])
|
||||||
|
|
||||||
if (loadingAppList || !appList.length) {
|
if (loadingAppList || !appList.length) {
|
||||||
return (
|
return (
|
||||||
|
@ -272,13 +118,21 @@ function Apps({ closeModal, closeSnackbar, enqueueSnackbar, openModal }) {
|
||||||
<LCL.Menu>
|
<LCL.Menu>
|
||||||
<LCL.List activeItem={selectedAppId} items={enabledApps} onItemClick={onSelectApp} />
|
<LCL.List activeItem={selectedAppId} items={enabledApps} onItemClick={onSelectApp} />
|
||||||
</LCL.Menu>
|
</LCL.Menu>
|
||||||
<LCL.Content>{getContent()}</LCL.Content>
|
<LCL.Content>
|
||||||
|
<AppFrame
|
||||||
|
ref={iframeRef}
|
||||||
|
granted={granted}
|
||||||
|
selectedApp={selectedApp}
|
||||||
|
safeAddress={safeAddress}
|
||||||
|
network={network}
|
||||||
|
appIsLoading={appIsLoading}
|
||||||
|
onIframeLoad={handleIframeLoad}
|
||||||
|
/>
|
||||||
|
</LCL.Content>
|
||||||
</LCL.Wrapper>
|
</LCL.Wrapper>
|
||||||
) : (
|
) : (
|
||||||
<StyledCard>
|
<StyledCard>
|
||||||
<Centered>
|
<Title size="xs">No Apps Enabled</Title>
|
||||||
<Title size="xs">No Apps Enabled</Title>
|
|
||||||
</Centered>
|
|
||||||
</StyledCard>
|
</StyledCard>
|
||||||
)}
|
)}
|
||||||
<CenteredMT>
|
<CenteredMT>
|
||||||
|
@ -294,4 +148,4 @@ function Apps({ closeModal, closeSnackbar, enqueueSnackbar, openModal }) {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export default withSnackbar(Apps)
|
export default Apps
|
||||||
|
|
|
@ -7,6 +7,7 @@ import { Redirect, Route, Switch, useRouteMatch } from 'react-router-dom'
|
||||||
import Receive from '../Balances/Receive'
|
import Receive from '../Balances/Receive'
|
||||||
|
|
||||||
import { styles } from './style'
|
import { styles } from './style'
|
||||||
|
import { ModalState, OpenModalArgs } from './interfaces'
|
||||||
|
|
||||||
import Modal from 'src/components/Modal'
|
import Modal from 'src/components/Modal'
|
||||||
import NoSafe from 'src/components/NoSafe'
|
import NoSafe from 'src/components/NoSafe'
|
||||||
|
@ -48,9 +49,9 @@ const Layout = (props: Props): React.ReactElement => {
|
||||||
const { hideSendFunds, onHide, onShow, sendFunds, showReceive, showSendFunds } = props
|
const { hideSendFunds, onHide, onShow, sendFunds, showReceive, showSendFunds } = props
|
||||||
const match = useRouteMatch()
|
const match = useRouteMatch()
|
||||||
|
|
||||||
const [modal, setModal] = useState({
|
const [modal, setModal] = useState<ModalState>({
|
||||||
isOpen: false,
|
isOpen: false,
|
||||||
title: null,
|
title: '',
|
||||||
body: null,
|
body: null,
|
||||||
footer: null,
|
footer: null,
|
||||||
onClose: null,
|
onClose: null,
|
||||||
|
@ -62,14 +63,12 @@ const Layout = (props: Props): React.ReactElement => {
|
||||||
return <NoSafe provider={provider} text="Safe not found" />
|
return <NoSafe provider={provider} text="Safe not found" />
|
||||||
}
|
}
|
||||||
|
|
||||||
const openGenericModal = (modalConfig) => {
|
const openGenericModal = (modalConfig: OpenModalArgs): void => {
|
||||||
setModal({ ...modalConfig, isOpen: true })
|
setModal({ ...modalConfig, isOpen: true })
|
||||||
}
|
}
|
||||||
|
|
||||||
const closeGenericModal = () => {
|
const closeGenericModal = (): void => {
|
||||||
if (modal.onClose) {
|
modal.onClose?.()
|
||||||
modal.onClose()
|
|
||||||
}
|
|
||||||
|
|
||||||
setModal({
|
setModal({
|
||||||
isOpen: false,
|
isOpen: false,
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
export interface ModalState {
|
||||||
|
isOpen: boolean
|
||||||
|
title: string | React.ReactElement
|
||||||
|
body: React.ReactNode | null
|
||||||
|
footer: React.ReactNode | null
|
||||||
|
onClose: () => unknown
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface OpenModalArgs {
|
||||||
|
title: string | React.ReactElement
|
||||||
|
body: React.ReactNode | null
|
||||||
|
footer: React.ReactNode | null
|
||||||
|
onClose: () => unknown
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
export const isValid = (url, protocolsAllowed = ['https:', 'http:']) => {
|
export const isValidURL = (url: string, protocolsAllowed = ['https:', 'http:']): boolean => {
|
||||||
try {
|
try {
|
||||||
const urlInfo = new URL(url)
|
const urlInfo = new URL(url)
|
||||||
return protocolsAllowed.includes(urlInfo.protocol)
|
return protocolsAllowed.includes(urlInfo.protocol)
|
||||||
|
@ -7,7 +7,7 @@ export const isValid = (url, protocolsAllowed = ['https:', 'http:']) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const isSameHref = (url1, url2) => {
|
export const isSameURL = (url1: string, url2: string): boolean => {
|
||||||
try {
|
try {
|
||||||
const a = new URL(url1)
|
const a = new URL(url1)
|
||||||
const b = new URL(url2)
|
const b = new URL(url2)
|
||||||
|
|
508
yarn.lock
508
yarn.lock
|
@ -1075,13 +1075,6 @@
|
||||||
core-js-pure "^3.0.0"
|
core-js-pure "^3.0.0"
|
||||||
regenerator-runtime "^0.13.4"
|
regenerator-runtime "^0.13.4"
|
||||||
|
|
||||||
"@babel/runtime@7.3.4":
|
|
||||||
version "7.3.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.3.4.tgz#73d12ba819e365fcf7fd152aed56d6df97d21c83"
|
|
||||||
integrity sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==
|
|
||||||
dependencies:
|
|
||||||
regenerator-runtime "^0.12.0"
|
|
||||||
|
|
||||||
"@babel/runtime@7.9.0":
|
"@babel/runtime@7.9.0":
|
||||||
version "7.9.0"
|
version "7.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.0.tgz#337eda67401f5b066a6f205a3113d4ac18ba495b"
|
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.0.tgz#337eda67401f5b066a6f205a3113d4ac18ba495b"
|
||||||
|
@ -1096,6 +1089,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
regenerator-runtime "^0.13.4"
|
regenerator-runtime "^0.13.4"
|
||||||
|
|
||||||
|
"@babel/runtime@^7.11.0":
|
||||||
|
version "7.11.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736"
|
||||||
|
integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==
|
||||||
|
dependencies:
|
||||||
|
regenerator-runtime "^0.13.4"
|
||||||
|
|
||||||
"@babel/template@^7.10.4", "@babel/template@^7.4.0", "@babel/template@^7.8.6":
|
"@babel/template@^7.10.4", "@babel/template@^7.4.0", "@babel/template@^7.8.6":
|
||||||
version "7.10.4"
|
version "7.10.4"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278"
|
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278"
|
||||||
|
@ -1325,6 +1325,11 @@
|
||||||
"@ethersproject/rlp" "^5.0.0"
|
"@ethersproject/rlp" "^5.0.0"
|
||||||
"@ethersproject/signing-key" "^5.0.0"
|
"@ethersproject/signing-key" "^5.0.0"
|
||||||
|
|
||||||
|
"@gnosis.pm/safe-apps-sdk@0.3.1":
|
||||||
|
version "0.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@gnosis.pm/safe-apps-sdk/-/safe-apps-sdk-0.3.1.tgz#ebec9ffecfd8a6dbe061ef85a2fc68a3b92ee398"
|
||||||
|
integrity sha512-2nsmoaPa/C3X+g6EThc4DD7ptSy9fV+RQ507Ly1y01uIzVMRCT0sFcOm0z8oNwCWc5qtY2X4hn00+oR6JdmhUw==
|
||||||
|
|
||||||
"@gnosis.pm/safe-contracts@1.1.1-dev.2":
|
"@gnosis.pm/safe-contracts@1.1.1-dev.2":
|
||||||
version "1.1.1-dev.2"
|
version "1.1.1-dev.2"
|
||||||
resolved "https://registry.yarnpkg.com/@gnosis.pm/safe-contracts/-/safe-contracts-1.1.1-dev.2.tgz#4a5b9a9befe66d15df87d2216237d4ea4f64118f"
|
resolved "https://registry.yarnpkg.com/@gnosis.pm/safe-contracts/-/safe-contracts-1.1.1-dev.2.tgz#4a5b9a9befe66d15df87d2216237d4ea4f64118f"
|
||||||
|
@ -1337,7 +1342,7 @@
|
||||||
solc "0.5.14"
|
solc "0.5.14"
|
||||||
truffle "^5.1.21"
|
truffle "^5.1.21"
|
||||||
|
|
||||||
"@gnosis.pm/safe-react-components@https://github.com/gnosis/safe-react-components.git#45c746a":
|
"@gnosis.pm/safe-react-components@https://github.com/gnosis/safe-react-components.git#45c746a12661b9c38e839e76022b6a0a92285db7":
|
||||||
version "0.2.0"
|
version "0.2.0"
|
||||||
resolved "https://github.com/gnosis/safe-react-components.git#45c746a12661b9c38e839e76022b6a0a92285db7"
|
resolved "https://github.com/gnosis/safe-react-components.git#45c746a12661b9c38e839e76022b6a0a92285db7"
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -1593,18 +1598,32 @@
|
||||||
"@ledgerhq/logs" "^5.19.1"
|
"@ledgerhq/logs" "^5.19.1"
|
||||||
rxjs "^6.6.0"
|
rxjs "^6.6.0"
|
||||||
|
|
||||||
|
"@ledgerhq/devices@^5.21.0":
|
||||||
|
version "5.21.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.21.0.tgz#b6dc274536e70513a3ae7df7a9f956ea87adcc49"
|
||||||
|
integrity sha512-65XZgD2ykK7AJkcJuNEP8WD43HDkudA7NfB34U1T6pmPC6AgWoRYDNpJ23XQ8eiAImETlxv7FaDGUXSEpIQMGQ==
|
||||||
|
dependencies:
|
||||||
|
"@ledgerhq/errors" "^5.21.0"
|
||||||
|
"@ledgerhq/logs" "^5.21.0"
|
||||||
|
rxjs "^6.6.0"
|
||||||
|
|
||||||
"@ledgerhq/errors@^5.19.1":
|
"@ledgerhq/errors@^5.19.1":
|
||||||
version "5.19.1"
|
version "5.19.1"
|
||||||
resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.19.1.tgz#3d25cc0ee92feee35415236c741ef668a106e275"
|
resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.19.1.tgz#3d25cc0ee92feee35415236c741ef668a106e275"
|
||||||
integrity sha512-9v4ishxc2doiR06E/87uJdT7LjnSpnWPftDaBXBm/6KEgjPGtGBCcRW3fkmQTWNE115e6TG9JYRiVRPuqs6GHg==
|
integrity sha512-9v4ishxc2doiR06E/87uJdT7LjnSpnWPftDaBXBm/6KEgjPGtGBCcRW3fkmQTWNE115e6TG9JYRiVRPuqs6GHg==
|
||||||
|
|
||||||
"@ledgerhq/hw-app-eth@^5.19.0":
|
"@ledgerhq/errors@^5.21.0":
|
||||||
version "5.20.0"
|
version "5.21.0"
|
||||||
resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-5.20.0.tgz#59306601c1309e15a948c9b3d06e7dc85480f48e"
|
resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.21.0.tgz#2a7bdea62fe7e0bd9ccc3b786d2c179f8f65bc02"
|
||||||
integrity sha512-kL+oEJGhkd0A6GahRiDTp8RbheHYV+CQv04O+enQqIPuT++IZvSRlv03lBQNyNziX8b64/ZM+kQHWGesN7w7xg==
|
integrity sha512-sGfXoaVGfzrhnexu2TEdgL2FAjM7PUeobWdDBx3DJKE+ARje1y+i5+qg7gyvQL+9k4FV7mW2xMOcnUI3T2Zw0Q==
|
||||||
|
|
||||||
|
"@ledgerhq/hw-app-eth@^5.21.0":
|
||||||
|
version "5.21.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-5.21.0.tgz#a6857df45cddf29b5e7623237171d7ffba42a44c"
|
||||||
|
integrity sha512-FKwwqp7IDgCq9ToL/JwO4S3HXr4LSI+Vr6KqeCtpCwRGNdvtiUHF3S9g2LtUroCcGXx9HTr2XL4hZzfrj+2jfg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ledgerhq/errors" "^5.19.1"
|
"@ledgerhq/errors" "^5.21.0"
|
||||||
"@ledgerhq/hw-transport" "^5.19.1"
|
"@ledgerhq/hw-transport" "^5.21.0"
|
||||||
bignumber.js "^9.0.0"
|
bignumber.js "^9.0.0"
|
||||||
rlp "^2.2.6"
|
rlp "^2.2.6"
|
||||||
|
|
||||||
|
@ -1633,14 +1652,14 @@
|
||||||
node-hid "^1.3.0"
|
node-hid "^1.3.0"
|
||||||
usb "^1.6.3"
|
usb "^1.6.3"
|
||||||
|
|
||||||
"@ledgerhq/hw-transport-u2f@^5.19.0":
|
"@ledgerhq/hw-transport-u2f@^5.21.0":
|
||||||
version "5.19.1"
|
version "5.21.0"
|
||||||
resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.19.1.tgz#327a98aa9a932114c3d530dabd77459e249b7091"
|
resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.21.0.tgz#7bb14e6a334eccff0e51c3346702561cebc99941"
|
||||||
integrity sha512-jCDx+ZJdHhB+I/aoUZHhgE5aiZdrKkvUHfeUGScR/Ya3MfOHq7otIS+gEi4AIuxK08gXUOWAm1ygKzTCo+KPpw==
|
integrity sha512-D9bbi0ubvNmHbqTAcaxtbgrXRRnoc6qW34m+IO/FRqdPrJTYw3o9y2f0udv8WQZkbNnBvXEksROEvADkr4dj+Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ledgerhq/errors" "^5.19.1"
|
"@ledgerhq/errors" "^5.21.0"
|
||||||
"@ledgerhq/hw-transport" "^5.19.1"
|
"@ledgerhq/hw-transport" "^5.21.0"
|
||||||
"@ledgerhq/logs" "^5.19.1"
|
"@ledgerhq/logs" "^5.21.0"
|
||||||
u2f-api "0.2.7"
|
u2f-api "0.2.7"
|
||||||
|
|
||||||
"@ledgerhq/hw-transport@^5.19.1":
|
"@ledgerhq/hw-transport@^5.19.1":
|
||||||
|
@ -1652,11 +1671,25 @@
|
||||||
"@ledgerhq/errors" "^5.19.1"
|
"@ledgerhq/errors" "^5.19.1"
|
||||||
events "^3.1.0"
|
events "^3.1.0"
|
||||||
|
|
||||||
|
"@ledgerhq/hw-transport@^5.21.0":
|
||||||
|
version "5.21.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.21.0.tgz#c94d13397a26e0755824e05613e2257a3d2b450b"
|
||||||
|
integrity sha512-emVoy+ZEA19z+g6CsDcliVRRYDn4RzdH+zW9F37Z22uoMWslx2VNa+KdcKijmS3V3mkSLjle1cjwprPh61G8hQ==
|
||||||
|
dependencies:
|
||||||
|
"@ledgerhq/devices" "^5.21.0"
|
||||||
|
"@ledgerhq/errors" "^5.21.0"
|
||||||
|
events "^3.2.0"
|
||||||
|
|
||||||
"@ledgerhq/logs@^5.19.1":
|
"@ledgerhq/logs@^5.19.1":
|
||||||
version "5.19.1"
|
version "5.19.1"
|
||||||
resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.19.1.tgz#c3df2b307331ccd373abc78b8ccea02377049256"
|
resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.19.1.tgz#c3df2b307331ccd373abc78b8ccea02377049256"
|
||||||
integrity sha512-nz33IoR3dG3DtJ46AyfLfpdMjGMkwmi21H49wcqVfNAteEe74fzO4cw9fcGMb4ENspYYtmB4LWTSp4gVPRglcg==
|
integrity sha512-nz33IoR3dG3DtJ46AyfLfpdMjGMkwmi21H49wcqVfNAteEe74fzO4cw9fcGMb4ENspYYtmB4LWTSp4gVPRglcg==
|
||||||
|
|
||||||
|
"@ledgerhq/logs@^5.21.0":
|
||||||
|
version "5.21.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.21.0.tgz#19629222e44b4d312e232c2dfbe0d067ecc12830"
|
||||||
|
integrity sha512-eyPXrKfQ+HSLcITB5MdSWhXlImE2qKWTLT2u6l+a9wiCZl5yimSqn0uC5evxaP0McKOW0wSntgfj+gOoKv+Paw==
|
||||||
|
|
||||||
"@material-ui/core@4.11.0":
|
"@material-ui/core@4.11.0":
|
||||||
version "4.11.0"
|
version "4.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.11.0.tgz#b69b26e4553c9e53f2bfaf1053e216a0af9be15a"
|
resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.11.0.tgz#b69b26e4553c9e53f2bfaf1053e216a0af9be15a"
|
||||||
|
@ -1805,17 +1838,17 @@
|
||||||
xhr "^2.2.0"
|
xhr "^2.2.0"
|
||||||
xtend "^4.0.1"
|
xtend "^4.0.1"
|
||||||
|
|
||||||
"@portis/web3@^2.0.0-beta.55":
|
"@portis/web3@^2.0.0-beta.57":
|
||||||
version "2.0.0-beta.56"
|
version "2.0.0-beta.57"
|
||||||
resolved "https://registry.yarnpkg.com/@portis/web3/-/web3-2.0.0-beta.56.tgz#90ef7f0a63f68d80e10cb87aa08acbb92e433af6"
|
resolved "https://registry.yarnpkg.com/@portis/web3/-/web3-2.0.0-beta.57.tgz#45692bffc07687d50fa5204d514590d438b759de"
|
||||||
integrity sha512-likffGhd9lKMOiI657rV62NM0ewxLBOQGPoUJPIX2rCx25P9FQ+4CiqEsqCUeofaNra6q+/4EPZgSscNWHa6BQ==
|
integrity sha512-OYmt0a171AJECYT/vTkPb4uc1x7xFASMfn+MN3EAjo7DRhY8WfTAMNoMJDhuFARRLC7an2HrRIsT7D4q9GNrnQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@portis/web3-provider-engine" "1.1.0"
|
"@portis/web3-provider-engine" "1.1.0"
|
||||||
ethereumjs-util "5.2.0"
|
ethereumjs-util "5.2.0"
|
||||||
penpal "3.0.7"
|
penpal "3.0.7"
|
||||||
pocket-js-core "0.0.3"
|
pocket-js-core "0.0.3"
|
||||||
|
|
||||||
"@restless/sanitizers@^0.2.4":
|
"@restless/sanitizers@^0.2.5":
|
||||||
version "0.2.5"
|
version "0.2.5"
|
||||||
resolved "https://registry.yarnpkg.com/@restless/sanitizers/-/sanitizers-0.2.5.tgz#96a5cfa3edb52abd8fa14e77798738f3a067dbec"
|
resolved "https://registry.yarnpkg.com/@restless/sanitizers/-/sanitizers-0.2.5.tgz#96a5cfa3edb52abd8fa14e77798738f3a067dbec"
|
||||||
integrity sha512-utsOFwv5owNnbj8HijF7uML/AURgUl5YvY4S2gpxQsrp2D1EP/4rQU/HSyYdIQaL89BoZ/5NHveRJrcFyuHo/w==
|
integrity sha512-utsOFwv5owNnbj8HijF7uML/AURgUl5YvY4S2gpxQsrp2D1EP/4rQU/HSyYdIQaL89BoZ/5NHveRJrcFyuHo/w==
|
||||||
|
@ -1962,27 +1995,27 @@
|
||||||
lodash "^4.17.15"
|
lodash "^4.17.15"
|
||||||
redent "^3.0.0"
|
redent "^3.0.0"
|
||||||
|
|
||||||
"@testing-library/react@10.4.7":
|
"@testing-library/react@10.4.8":
|
||||||
version "10.4.7"
|
version "10.4.8"
|
||||||
resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-10.4.7.tgz#fc14847fb70a5e93576b8f7f0d1490ead02a9061"
|
resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-10.4.8.tgz#5eb730291b8fd81cdb2d8877770d060b044ae4a4"
|
||||||
integrity sha512-hUYbum3X2f1ZKusKfPaooKNYqE/GtPiQ+D2HJaJ4pkxeNJQFVUEvAvEh9+3QuLdBeTWkDMNY5NSijc5+pGdM4Q==
|
integrity sha512-clgpFR6QHiRRcdhFfAKDhH8UXpNASyfkkANhtCsCVBnai+O+mK1rGtMES+Apc7ql5Wyxu7j8dcLiC4pV5VblHA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.10.3"
|
"@babel/runtime" "^7.10.3"
|
||||||
"@testing-library/dom" "^7.17.1"
|
"@testing-library/dom" "^7.17.1"
|
||||||
|
|
||||||
"@testing-library/user-event@12.0.17":
|
"@testing-library/user-event@12.1.0":
|
||||||
version "12.0.17"
|
version "12.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-12.0.17.tgz#51f48905d62b3c6960fe5ea7a46152d8440f1586"
|
resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-12.1.0.tgz#a2597419466a93e338c91baa7bb22d4da0309d1d"
|
||||||
integrity sha512-Et22bfgnLdowY0VSP8MQuCP9wdrqWMrm9OCXSi3q3rx7ctSvEsC/jYNbgK/MJdDSpVhNVnB+fqm1VhVlDDRN6A==
|
integrity sha512-aH/XuNFpPD6dA+fh754EGqKeAzpH66HpLJYkv9vOAih2yGmTM8JiZ8uisQDGWRPkc6sxE2zCqDwLR4ZskhRCxw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.10.2"
|
"@babel/runtime" "^7.10.2"
|
||||||
|
|
||||||
"@toruslabs/eccrypto@^1.1.3":
|
"@toruslabs/eccrypto@^1.1.4":
|
||||||
version "1.1.3"
|
version "1.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/@toruslabs/eccrypto/-/eccrypto-1.1.3.tgz#6dcee86670149501efee4865d0acb25366f72237"
|
resolved "https://registry.yarnpkg.com/@toruslabs/eccrypto/-/eccrypto-1.1.4.tgz#2b32e0da10b28a316d08984afcda303536954cd8"
|
||||||
integrity sha512-hoLACz9Z6RP/ZH41Ba0iImJpl1f4Zx7pi/d3R7UIrOyt4IOgnWrlkzh2IqQYw4ouae4WZQYSZlyeYv81EWkoxQ==
|
integrity sha512-AQYcd7AM6ePb+V6CZTb6Lb/iaZ/BKpZ66AFdF1YLvMnyBeRY1JgdFOnjQfhtrUAYRMdcc8pBfvjFoWWK7EcggA==
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn "^7.3.1"
|
acorn "^7.4.0"
|
||||||
elliptic "^6.5.3"
|
elliptic "^6.5.3"
|
||||||
es6-promise "^4.2.8"
|
es6-promise "^4.2.8"
|
||||||
nan "^2.14.1"
|
nan "^2.14.1"
|
||||||
|
@ -1997,26 +2030,28 @@
|
||||||
web3-eth-contract "^1.2.9"
|
web3-eth-contract "^1.2.9"
|
||||||
web3-utils "^1.2.9"
|
web3-utils "^1.2.9"
|
||||||
|
|
||||||
"@toruslabs/http-helpers@^1.3.3":
|
"@toruslabs/http-helpers@^1.3.4":
|
||||||
version "1.3.3"
|
version "1.3.4"
|
||||||
resolved "https://registry.yarnpkg.com/@toruslabs/http-helpers/-/http-helpers-1.3.3.tgz#8564665a0cb9d4f868e5eaf814bbac71926623a2"
|
resolved "https://registry.yarnpkg.com/@toruslabs/http-helpers/-/http-helpers-1.3.4.tgz#8811cff562fb792267f79ca5cb5c1bf1bc517e34"
|
||||||
integrity sha512-bM0NyFCA+K8DOlhciDLIUQ05/VzuM9lgdwnNSr/gociRhPWbUDc8PkSVKYT3MshXj/ZtLvN9UvcTvY1hddN5UQ==
|
integrity sha512-2Hm34F3GOwg41jEaZs1rVF4b+SGwC2mPeR7WhkkkM1cQNlXyCtcgLNLqlCVrww9e6pfBCZ2h3aEQVw+p4cT4fw==
|
||||||
dependencies:
|
dependencies:
|
||||||
deepmerge "^4.2.2"
|
deepmerge "^4.2.2"
|
||||||
loglevel "^1.6.8"
|
loglevel "^1.6.8"
|
||||||
|
|
||||||
"@toruslabs/torus-embed@^1.3.0":
|
"@toruslabs/torus-embed@^1.8.2":
|
||||||
version "1.7.3"
|
version "1.8.2"
|
||||||
resolved "https://registry.yarnpkg.com/@toruslabs/torus-embed/-/torus-embed-1.7.3.tgz#1be2f3404a59cb145b5dd11c82da80cec1d360eb"
|
resolved "https://registry.yarnpkg.com/@toruslabs/torus-embed/-/torus-embed-1.8.2.tgz#6652b8f751c5f041749ccbfcaa0c08ced5f4f278"
|
||||||
integrity sha512-PMmksmG9mgRmFvliHccxV2LdDjrNKQfLojlYG3WMXB0OF3Bj3B7Y94ItSEvVf3XI+Q9xadq1cTAN+wLV3km/BA==
|
integrity sha512-SlApK4BavoQYNenoQxjUs9/rrqrGDK5+Z9coABA6J7pLcbSL7QnBl8bKwTTYhI9Hri2GRbUM8XzNNpZfy5RiIQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@chaitanyapotti/random-id" "^1.0.3"
|
"@chaitanyapotti/random-id" "^1.0.3"
|
||||||
"@toruslabs/fetch-node-details" "^2.3.0"
|
"@toruslabs/fetch-node-details" "^2.3.0"
|
||||||
"@toruslabs/torus.js" "^2.2.2"
|
"@toruslabs/http-helpers" "^1.3.4"
|
||||||
|
"@toruslabs/torus.js" "^2.2.4"
|
||||||
create-hash "^1.2.0"
|
create-hash "^1.2.0"
|
||||||
deepmerge "^4.2.2"
|
deepmerge "^4.2.2"
|
||||||
eth-json-rpc-errors "^2.0.2"
|
eth-json-rpc-errors "^2.0.2"
|
||||||
fast-deep-equal "^3.1.3"
|
fast-deep-equal "^3.1.3"
|
||||||
|
is-stream "^2.0.0"
|
||||||
json-rpc-engine "^5.1.8"
|
json-rpc-engine "^5.1.8"
|
||||||
json-rpc-middleware-stream "^2.1.1"
|
json-rpc-middleware-stream "^2.1.1"
|
||||||
loglevel "^1.6.8"
|
loglevel "^1.6.8"
|
||||||
|
@ -2027,19 +2062,19 @@
|
||||||
safe-event-emitter "^1.0.1"
|
safe-event-emitter "^1.0.1"
|
||||||
web3 "^0.20.7"
|
web3 "^0.20.7"
|
||||||
|
|
||||||
"@toruslabs/torus.js@^2.2.2":
|
"@toruslabs/torus.js@^2.2.4":
|
||||||
version "2.2.3"
|
version "2.2.5"
|
||||||
resolved "https://registry.yarnpkg.com/@toruslabs/torus.js/-/torus.js-2.2.3.tgz#525456e01cddfecf29a7b70b640d0188ffbf819e"
|
resolved "https://registry.yarnpkg.com/@toruslabs/torus.js/-/torus.js-2.2.5.tgz#8994ae7727d980e2c0600b1154d547260ea52ec4"
|
||||||
integrity sha512-GryzcqY5/iumfCy0LNUIdjo9iKYRHof6UQzHYK/u2oc4XtCWVKnwk+6OZfuYeurEoW/VDYU+b1MEa7qqOKV9RQ==
|
integrity sha512-fxrIQmtNo4p3uEy5KdiIrZiB32KGPtaV70PoPg/vQB4IL/gjrQSYSIcC0VyP04yBfjHLccJe/HKOhlofpKcjAg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@toruslabs/eccrypto" "^1.1.3"
|
"@toruslabs/eccrypto" "^1.1.4"
|
||||||
"@toruslabs/http-helpers" "^1.3.3"
|
"@toruslabs/http-helpers" "^1.3.4"
|
||||||
bn.js "^5.1.2"
|
bn.js "^5.1.2"
|
||||||
elliptic "^6.5.3"
|
elliptic "^6.5.3"
|
||||||
json-stable-stringify "^1.0.1"
|
json-stable-stringify "^1.0.1"
|
||||||
loglevel "^1.6.8"
|
loglevel "^1.6.8"
|
||||||
memory-cache "^0.2.0"
|
memory-cache "^0.2.0"
|
||||||
web3-utils "^1.2.9"
|
web3-utils "^1.2.11"
|
||||||
|
|
||||||
"@truffle/blockchain-utils@^0.0.11":
|
"@truffle/blockchain-utils@^0.0.11":
|
||||||
version "0.0.11"
|
version "0.0.11"
|
||||||
|
@ -2270,10 +2305,10 @@
|
||||||
jest-diff "^25.2.1"
|
jest-diff "^25.2.1"
|
||||||
pretty-format "^25.2.1"
|
pretty-format "^25.2.1"
|
||||||
|
|
||||||
"@types/jest@^26.0.7":
|
"@types/jest@^26.0.9":
|
||||||
version "26.0.7"
|
version "26.0.9"
|
||||||
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.7.tgz#495cb1d1818c1699dbc3b8b046baf1c86ef5e324"
|
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.9.tgz#0543b57da5f0cd949c5f423a00c56c492289c989"
|
||||||
integrity sha512-+x0077/LoN6MjqBcVOe1y9dpryWnfDZ+Xfo3EqGeBcfPRJlQp3Lw62RvNlWxuGv7kOEwlHriAa54updi3Jvvwg==
|
integrity sha512-k4qFfJ5AUKrWok5KYXp2EPm89b0P/KZpl7Vg4XuOTVVQEhLDBDBU3iBFrjjdgd8fLw96aAtmnwhXHl63bWeBQQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
jest-diff "^25.2.1"
|
jest-diff "^25.2.1"
|
||||||
pretty-format "^25.2.1"
|
pretty-format "^25.2.1"
|
||||||
|
@ -2422,7 +2457,7 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/react" "*"
|
"@types/react" "*"
|
||||||
|
|
||||||
"@types/react@*", "@types/react@^16.9.43":
|
"@types/react@*":
|
||||||
version "16.9.43"
|
version "16.9.43"
|
||||||
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.43.tgz#c287f23f6189666ee3bebc2eb8d0f84bcb6cdb6b"
|
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.43.tgz#c287f23f6189666ee3bebc2eb8d0f84bcb6cdb6b"
|
||||||
integrity sha512-PxshAFcnJqIWYpJbLPriClH53Z2WlJcVZE+NP2etUtWQs2s7yIMj3/LDKZT/5CHJ/F62iyjVCDu2H3jHEXIxSg==
|
integrity sha512-PxshAFcnJqIWYpJbLPriClH53Z2WlJcVZE+NP2etUtWQs2s7yIMj3/LDKZT/5CHJ/F62iyjVCDu2H3jHEXIxSg==
|
||||||
|
@ -2430,6 +2465,14 @@
|
||||||
"@types/prop-types" "*"
|
"@types/prop-types" "*"
|
||||||
csstype "^2.2.0"
|
csstype "^2.2.0"
|
||||||
|
|
||||||
|
"@types/react@^16.9.44":
|
||||||
|
version "16.9.44"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.44.tgz#da84b179c031aef67dc92c33bd3401f1da2fa3bc"
|
||||||
|
integrity sha512-BtLoJrXdW8DVZauKP+bY4Kmiq7ubcJq+H/aCpRfvPF7RAT3RwR73Sg8szdc2YasbAlWBDrQ6Q+AFM0KwtQY+WQ==
|
||||||
|
dependencies:
|
||||||
|
"@types/prop-types" "*"
|
||||||
|
csstype "^3.0.2"
|
||||||
|
|
||||||
"@types/resolve@^0.0.8":
|
"@types/resolve@^0.0.8":
|
||||||
version "0.0.8"
|
version "0.0.8"
|
||||||
resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194"
|
resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194"
|
||||||
|
@ -2456,15 +2499,15 @@
|
||||||
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
|
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
|
||||||
integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==
|
integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==
|
||||||
|
|
||||||
"@types/styled-components@^5.1.1":
|
"@types/styled-components@^5.1.2":
|
||||||
version "5.1.1"
|
version "5.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.1.tgz#17c3b3a299aa38254189e04a72a8ee009a22e42d"
|
resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.2.tgz#652af475b4af917b355ea1c3068acae63d46455f"
|
||||||
integrity sha512-fIjKvDU1LJExBZWEQilHqzfpOK4KUwBsj5zC79lxa94ekz8oDQSBNcayMACBImxIuevF+NbBGL9O/2CQ67Zhig==
|
integrity sha512-HNocYLfrsnNNm8NTS/W53OERSjRA8dx5Bn6wBd2rXXwt4Z3s+oqvY6/PbVt3e6sgtzI63GX//WiWiRhWur08qQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/hoist-non-react-statics" "*"
|
"@types/hoist-non-react-statics" "*"
|
||||||
"@types/react" "*"
|
"@types/react" "*"
|
||||||
"@types/react-native" "*"
|
"@types/react-native" "*"
|
||||||
csstype "^2.2.0"
|
csstype "^3.0.2"
|
||||||
|
|
||||||
"@types/testing-library__jest-dom@^5.9.1":
|
"@types/testing-library__jest-dom@^5.9.1":
|
||||||
version "5.9.1"
|
version "5.9.1"
|
||||||
|
@ -2492,12 +2535,12 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/yargs-parser" "*"
|
"@types/yargs-parser" "*"
|
||||||
|
|
||||||
"@typescript-eslint/eslint-plugin@3.7.1":
|
"@typescript-eslint/eslint-plugin@3.8.0":
|
||||||
version "3.7.1"
|
version "3.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.7.1.tgz#d144c49a9a0ffe8dd704bb179c243df76c111bc9"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.8.0.tgz#f82947bcdd9a4e42be7ad80dfd61f1dc411dd1df"
|
||||||
integrity sha512-3DB9JDYkMrc8Au00rGFiJLK2Ja9CoMP6Ut0sHsXp3ZtSugjNxvSSHTnKLfo4o+QmjYBJqEznDqsG1zj4F2xnsg==
|
integrity sha512-lFb4VCDleFSR+eo4Ew+HvrJ37ZH1Y9ZyE+qyP7EiwBpcCVxwmUc5PAqhShCQ8N8U5vqYydm74nss+a0wrrCErw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/experimental-utils" "3.7.1"
|
"@typescript-eslint/experimental-utils" "3.8.0"
|
||||||
debug "^4.1.1"
|
debug "^4.1.1"
|
||||||
functional-red-black-tree "^1.0.1"
|
functional-red-black-tree "^1.0.1"
|
||||||
regexpp "^3.0.0"
|
regexpp "^3.0.0"
|
||||||
|
@ -2524,26 +2567,26 @@
|
||||||
eslint-scope "^5.0.0"
|
eslint-scope "^5.0.0"
|
||||||
eslint-utils "^2.0.0"
|
eslint-utils "^2.0.0"
|
||||||
|
|
||||||
"@typescript-eslint/experimental-utils@3.7.1":
|
"@typescript-eslint/experimental-utils@3.8.0":
|
||||||
version "3.7.1"
|
version "3.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.7.1.tgz#ab036caaed4c870d22531d41f9352f3147364d61"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.8.0.tgz#ac1f7c88322dcfb7635ece6f0441516dd951099a"
|
||||||
integrity sha512-TqE97pv7HrqWcGJbLbZt1v59tcqsSVpWTOf1AqrWK7n8nok2sGgVtYRuGXeNeLw3wXlLEbY1MKP3saB2HsO/Ng==
|
integrity sha512-o8T1blo1lAJE0QDsW7nSyvZHbiDzQDjINJKyB44Z3sSL39qBy5L10ScI/XwDtaiunoyKGLiY9bzRk4YjsUZl8w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/json-schema" "^7.0.3"
|
"@types/json-schema" "^7.0.3"
|
||||||
"@typescript-eslint/types" "3.7.1"
|
"@typescript-eslint/types" "3.8.0"
|
||||||
"@typescript-eslint/typescript-estree" "3.7.1"
|
"@typescript-eslint/typescript-estree" "3.8.0"
|
||||||
eslint-scope "^5.0.0"
|
eslint-scope "^5.0.0"
|
||||||
eslint-utils "^2.0.0"
|
eslint-utils "^2.0.0"
|
||||||
|
|
||||||
"@typescript-eslint/parser@3.7.1":
|
"@typescript-eslint/parser@3.8.0":
|
||||||
version "3.7.1"
|
version "3.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.7.1.tgz#5d9ccecb116d12d9c6073e9861c57c9b1aa88128"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.8.0.tgz#8e1dcd404299bf79492409c81c415fa95a7c622b"
|
||||||
integrity sha512-W4QV/gXvfIsccN8225784LNOorcm7ch68Fi3V4Wg7gmkWSQRKevO4RrRqWo6N/Z/myK1QAiGgeaXN57m+R/8iQ==
|
integrity sha512-u5vjOBaCsnMVQOvkKCXAmmOhyyMmFFf5dbkM3TIbg3MZ2pyv5peE4gj81UAbTHwTOXEwf7eCQTUMKrDl/+qGnA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/eslint-visitor-keys" "^1.0.0"
|
"@types/eslint-visitor-keys" "^1.0.0"
|
||||||
"@typescript-eslint/experimental-utils" "3.7.1"
|
"@typescript-eslint/experimental-utils" "3.8.0"
|
||||||
"@typescript-eslint/types" "3.7.1"
|
"@typescript-eslint/types" "3.8.0"
|
||||||
"@typescript-eslint/typescript-estree" "3.7.1"
|
"@typescript-eslint/typescript-estree" "3.8.0"
|
||||||
eslint-visitor-keys "^1.1.0"
|
eslint-visitor-keys "^1.1.0"
|
||||||
|
|
||||||
"@typescript-eslint/parser@^2.10.0":
|
"@typescript-eslint/parser@^2.10.0":
|
||||||
|
@ -2556,10 +2599,10 @@
|
||||||
"@typescript-eslint/typescript-estree" "2.34.0"
|
"@typescript-eslint/typescript-estree" "2.34.0"
|
||||||
eslint-visitor-keys "^1.1.0"
|
eslint-visitor-keys "^1.1.0"
|
||||||
|
|
||||||
"@typescript-eslint/types@3.7.1":
|
"@typescript-eslint/types@3.8.0":
|
||||||
version "3.7.1"
|
version "3.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.7.1.tgz#90375606b2fd73c1224fe9e397ee151e28fa1e0c"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.8.0.tgz#58581dd863f86e0cd23353d94362bb90b4bea796"
|
||||||
integrity sha512-PZe8twm5Z4b61jt7GAQDor6KiMhgPgf4XmUb9zdrwTbgtC/Sj29gXP1dws9yEn4+aJeyXrjsD9XN7AWFhmnUfg==
|
integrity sha512-8kROmEQkv6ss9kdQ44vCN1dTrgu4Qxrd2kXr10kz2NP5T8/7JnEfYNxCpPkArbLIhhkGLZV3aVMplH1RXQRF7Q==
|
||||||
|
|
||||||
"@typescript-eslint/typescript-estree@2.34.0":
|
"@typescript-eslint/typescript-estree@2.34.0":
|
||||||
version "2.34.0"
|
version "2.34.0"
|
||||||
|
@ -2574,13 +2617,13 @@
|
||||||
semver "^7.3.2"
|
semver "^7.3.2"
|
||||||
tsutils "^3.17.1"
|
tsutils "^3.17.1"
|
||||||
|
|
||||||
"@typescript-eslint/typescript-estree@3.7.1":
|
"@typescript-eslint/typescript-estree@3.8.0":
|
||||||
version "3.7.1"
|
version "3.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.7.1.tgz#ce1ffbd0fa53f34d4ce851a7a364e392432f6eb3"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.8.0.tgz#0606d19f629f813dbdd5a34c7a1e895d6191cac6"
|
||||||
integrity sha512-m97vNZkI08dunYOr2lVZOHoyfpqRs0KDpd6qkGaIcLGhQ2WPtgHOd/eVbsJZ0VYCQvupKrObAGTOvk3tfpybYA==
|
integrity sha512-MTv9nPDhlKfclwnplRNDL44mP2SY96YmPGxmMbMy6x12I+pERcxpIUht7DXZaj4mOKKtet53wYYXU0ABaiXrLw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/types" "3.7.1"
|
"@typescript-eslint/types" "3.8.0"
|
||||||
"@typescript-eslint/visitor-keys" "3.7.1"
|
"@typescript-eslint/visitor-keys" "3.8.0"
|
||||||
debug "^4.1.1"
|
debug "^4.1.1"
|
||||||
glob "^7.1.6"
|
glob "^7.1.6"
|
||||||
is-glob "^4.0.1"
|
is-glob "^4.0.1"
|
||||||
|
@ -2588,107 +2631,107 @@
|
||||||
semver "^7.3.2"
|
semver "^7.3.2"
|
||||||
tsutils "^3.17.1"
|
tsutils "^3.17.1"
|
||||||
|
|
||||||
"@typescript-eslint/visitor-keys@3.7.1":
|
"@typescript-eslint/visitor-keys@3.8.0":
|
||||||
version "3.7.1"
|
version "3.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.7.1.tgz#b90191e74efdee656be8c5a30f428ed16dda46d1"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.8.0.tgz#ad35110249fb3fc30a36bfcbfeea93e710cfaab1"
|
||||||
integrity sha512-xn22sQbEya+Utj2IqJHGLA3i1jDzR43RzWupxojbSWnj3nnPLavaQmWe5utw03CwYao3r00qzXfgJMGNkrzrAA==
|
integrity sha512-gfqQWyVPpT9NpLREXNR820AYwgz+Kr1GuF3nf1wxpHD6hdxI62tq03ToomFnDxY0m3pUB39IF7sil7D5TQexLA==
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint-visitor-keys "^1.1.0"
|
eslint-visitor-keys "^1.1.0"
|
||||||
|
|
||||||
"@unilogin/provider@^0.5.21":
|
"@unilogin/provider@^0.6.1":
|
||||||
version "0.5.21"
|
version "0.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/@unilogin/provider/-/provider-0.5.21.tgz#bc3aa74750c3fcd2ddcb763279fb58d88f5bc8f5"
|
resolved "https://registry.yarnpkg.com/@unilogin/provider/-/provider-0.6.1.tgz#427247f0cb0899d8b0d00c04a4b90ae2a3c2cb40"
|
||||||
integrity sha512-HVMrFIKc6ysxj5F1dz0UFaSIvSMtqw5JBYEzomvtthsw/fNwbT8/I/mA4OCaAJcpuaI1d66X9bZhOrP5GWcwVg==
|
integrity sha512-S96uBfoh+/nk8L6Yr+YgEV+FwQgtRnozWhgJpOhmRz128ri5Qv2SXLx5Sac33NGbs8g27PgKOyHX3dKJCvcP3g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@restless/sanitizers" "^0.2.4"
|
"@restless/sanitizers" "^0.2.5"
|
||||||
reactive-properties "^0.1.11"
|
reactive-properties "^0.1.11"
|
||||||
|
|
||||||
"@walletconnect/client@^1.0.18":
|
"@walletconnect/client@^1.1.0":
|
||||||
version "1.0.18"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.0.18.tgz#e3316fc53c0218d69e03bcdbb3c4c9759579b151"
|
resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.1.0.tgz#f2454cba82da3d8c7375b2a5d9d47f34ed7348ec"
|
||||||
integrity sha512-VgxS4mdsYfp6PQ/W4jVtWGhiQb2wf8hWM+kYMHV21N9UUkOuRBBjDay1Gxq2Tv99+BOF4VI+cpmvjTvsGaT/0A==
|
integrity sha512-pHxvUDCkD4oP3AFxYLU7yeE+qDZtcHF20b2K8/HNvyuyu3eWFX4jpHgx6FdvcIcFcAXGs5nk24zBUEO8p+axWg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@walletconnect/core" "^1.0.18"
|
"@walletconnect/core" "^1.1.0"
|
||||||
"@walletconnect/iso-crypto" "^1.0.18"
|
"@walletconnect/iso-crypto" "^1.1.0"
|
||||||
"@walletconnect/types" "^1.0.18"
|
"@walletconnect/types" "^1.1.0"
|
||||||
"@walletconnect/utils" "^1.0.18"
|
"@walletconnect/utils" "^1.1.0"
|
||||||
|
|
||||||
"@walletconnect/core@^1.0.18":
|
"@walletconnect/core@^1.1.0":
|
||||||
version "1.0.18"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.0.18.tgz#3632998f8bb8280d64b40506cdbfef51df24d729"
|
resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.1.0.tgz#053f08b0ccfdfb14ccd27b7fd425d9849cedba14"
|
||||||
integrity sha512-lpkD8P7l3EDLJswG0L8BrHMck70s+G/KncUnpr0r7eQ4t9Rh+waDBi4g2JBPj9LbRxFZYKiLEcW4r+Oh/85Yhw==
|
integrity sha512-Bhe4gnR6Az11u7OAOw0UDZKM6emUjIQtQ2PVdPDWke6ryC0DWMg9vTYbVPf3lDHBv5hy5eAyDst30N5E91SuYw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@walletconnect/socket-transport" "^1.0.18"
|
"@walletconnect/socket-transport" "^1.1.0"
|
||||||
"@walletconnect/types" "^1.0.18"
|
"@walletconnect/types" "^1.1.0"
|
||||||
"@walletconnect/utils" "^1.0.18"
|
"@walletconnect/utils" "^1.1.0"
|
||||||
|
|
||||||
"@walletconnect/http-connection@^1.0.18":
|
"@walletconnect/http-connection@^1.1.0":
|
||||||
version "1.0.18"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/@walletconnect/http-connection/-/http-connection-1.0.18.tgz#eaad192e8262de2b23c4ac8c092d3816eefc7a83"
|
resolved "https://registry.yarnpkg.com/@walletconnect/http-connection/-/http-connection-1.1.0.tgz#c6650c12a07244d30f20647420cdcd8c69c6daca"
|
||||||
integrity sha512-ifGNtNglOEU/EwehEFODUuYSV8yS8IW+uzIDVRQC0gK7FIaaQEVwkwmD0ksN8wrgj4z6/8V1JHi7lct+Eo4S0w==
|
integrity sha512-ugxDW/NaSgn7rmdPZhrpJIS79gASLvzBnGHScMs8zpYDHwcFxh2DP3HTspC8o5FyMqjRlEGtNi4zSGKY6EOrkw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@walletconnect/types" "^1.0.18"
|
"@walletconnect/types" "^1.1.0"
|
||||||
"@walletconnect/utils" "^1.0.18"
|
"@walletconnect/utils" "^1.1.0"
|
||||||
xhr2-cookies "1.1.0"
|
xhr2-cookies "1.1.0"
|
||||||
|
|
||||||
"@walletconnect/iso-crypto@^1.0.18":
|
"@walletconnect/iso-crypto@^1.1.0":
|
||||||
version "1.0.18"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.0.18.tgz#4aa5f4c9912048e9880fe945ff7ff7520a6ec347"
|
resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.1.0.tgz#a8235049c1b239adcf9fc6a6c38b7e9ad13004a6"
|
||||||
integrity sha512-ABpN3Hcwv7AT9N55C/whTz/lWX2RnuhQf4timzbgaawqZ0vJlFlYI9fNdag0T54S8NcWvKXTiwDxRJ8hOiR+3A==
|
integrity sha512-ttWLj4rTy2NGQnSAKnAar1LSrsJuCQ2JnQUl8hsgc9oTwXKgnRvtxGy2Kajoih/tNKnK959Ilj4WI2HaSJ9G1g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@walletconnect/types" "^1.0.18"
|
"@walletconnect/types" "^1.1.0"
|
||||||
"@walletconnect/utils" "^1.0.18"
|
"@walletconnect/utils" "^1.1.0"
|
||||||
eccrypto-js "5.2.0"
|
eccrypto-js "5.2.0"
|
||||||
|
|
||||||
"@walletconnect/mobile-registry@^1.0.18":
|
"@walletconnect/mobile-registry@^1.1.0":
|
||||||
version "1.0.18"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.0.18.tgz#6ca311c8a1ad7f803682d3135f61635a8c6f98e1"
|
resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.1.0.tgz#72173a4fcee61f4f8819f6d9fc7cfbf824ed3548"
|
||||||
integrity sha512-SmBg2t/ucrkXM3624Gn2/8DupsR8984JVscet1xyHTwr78hj69gpJc4yO8+gADpaHKgA2eCQCbKLupqruwqWdA==
|
integrity sha512-OOHQa4NeK2lbfI9WD2d+hTHGwSDzBLoTCeofdLNO2ibaTltQ6S+WNDAVuho6U8CkUTzs5cHPFgLJ6nxYZ8sr/g==
|
||||||
|
|
||||||
"@walletconnect/qrcode-modal@^1.0.18":
|
"@walletconnect/qrcode-modal@^1.1.0":
|
||||||
version "1.0.18"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.0.18.tgz#4461d31c92ba6b0ad3deb454f91d246c95c7a0c9"
|
resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.1.0.tgz#4cd0c2c2c713be3f49ef00293a1b23a079d4c7b7"
|
||||||
integrity sha512-50XdgUiQPlx95VnBOs8afjLKvvGn4kBT9RrbsDLQ52m/Sn2/yzyoLoEEuk+Wv3t5VkZxTBZ5BeQNpCxTRfYR1Q==
|
integrity sha512-vYsu1MBE0D+kx1+xdXmaCs7JqhhWPw8orKk9Br64YIPF5pv/48i+Yi/m28/0myJm54YPlVcgzTnuf8PzAH7jgA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@walletconnect/mobile-registry" "^1.0.18"
|
"@walletconnect/mobile-registry" "^1.1.0"
|
||||||
"@walletconnect/types" "^1.0.18"
|
"@walletconnect/types" "^1.1.0"
|
||||||
"@walletconnect/utils" "^1.0.18"
|
"@walletconnect/utils" "^1.1.0"
|
||||||
preact "10.4.1"
|
preact "10.4.1"
|
||||||
qrcode "1.4.4"
|
qrcode "1.4.4"
|
||||||
|
|
||||||
"@walletconnect/socket-transport@^1.0.18":
|
"@walletconnect/socket-transport@^1.1.0":
|
||||||
version "1.0.18"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.0.18.tgz#49395772b17de9f2ee42312db5cd692b0eabe16b"
|
resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.1.0.tgz#d80b5e6b3b904f131961259ca16de816ae2b003b"
|
||||||
integrity sha512-UQclrEM4uExqbF3snAxhZil0XMlxufmlMZUNgfFe+io9K3H/FH7kILIMqow0Y7EhxUL++bVsVGTEjurDz4sYzw==
|
integrity sha512-plo5WHjL3RTDENH7MTgs7D/ePGHfSuc/HLzkVGvgZSOtoPlRR916nSZNeL4bStYF1ZRJCrds10x36C0DlZjpQg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@walletconnect/types" "^1.0.18"
|
"@walletconnect/types" "^1.1.0"
|
||||||
ws "7.3.0"
|
ws "7.3.0"
|
||||||
|
|
||||||
"@walletconnect/types@^1.0.18":
|
"@walletconnect/types@^1.1.0":
|
||||||
version "1.0.18"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.0.18.tgz#7b5b2bffe4451f3128f34d3c31bb99a6fd023152"
|
resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.1.0.tgz#1e4efbf033ad89910cbb86f1f381cd5fe7e764fd"
|
||||||
integrity sha512-gGu3rAcmdeauLxOZo5X4KYzBhxoxpGCHzd7LEcgcsLIhx/4cUqk3lirElO4WozeUkQyy28yEBTLUA6bASFsFpQ==
|
integrity sha512-cgDEuYHZZTiaXFRwQs3Zhhar+l2T58/YjhWrfZTMKWuc77geIbF7682i9lE9bNEQqQvQ76jjKxJfSLGjCu++sA==
|
||||||
|
|
||||||
"@walletconnect/utils@^1.0.18":
|
"@walletconnect/utils@^1.1.0":
|
||||||
version "1.0.18"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.0.18.tgz#730a8dbccbce9582b74761cb3faa1cc1cc4328d7"
|
resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.1.0.tgz#7b0bcf5c77e8079ac055013537a9620244db2da9"
|
||||||
integrity sha512-isq7brCnZJj82QEd/34TjM4qrZcTe2PjvFuvrkhtS0c3T+Qaq0sZ6HzJA2Mctu0Uv33vqI7VDgsIkuecD0KYWw==
|
integrity sha512-y5v8PCmd/2kASOncYaz5QJiAzwBRT5MK398PmIkImX9tNEeBh00ifeQGZKkCGi6JYXbde0UC5jsGTGkH8hdxeg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@walletconnect/types" "^1.0.18"
|
"@walletconnect/types" "^1.1.0"
|
||||||
detect-browser "5.1.0"
|
detect-browser "5.1.0"
|
||||||
enc-utils "2.1.0"
|
enc-utils "2.1.0"
|
||||||
js-sha3 "0.8.0"
|
js-sha3 "0.8.0"
|
||||||
|
|
||||||
"@walletconnect/web3-provider@^1.0.13":
|
"@walletconnect/web3-provider@^1.1.0":
|
||||||
version "1.0.18"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/@walletconnect/web3-provider/-/web3-provider-1.0.18.tgz#4ca86a3841dfdb1854681bd6da7b7466cf03ae20"
|
resolved "https://registry.yarnpkg.com/@walletconnect/web3-provider/-/web3-provider-1.1.0.tgz#c8a30c4121d3ade159022b10d3a18ecd804c8993"
|
||||||
integrity sha512-XvbdvMJq8P977uYpCsibt2wpZgQ5qRPBMK22jO0kmUuHdxuctqVQI+zqrnpeFzjQQi5wRvBRb3x15aSFUCo+Lg==
|
integrity sha512-1DaYG+aK2pjCBKXrB0c2JKeFk27ObUsu09LlZN1VvIi1+zvHftaubNsSGViLmrq25w72yPle/SDjhgmxvKVMQQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@walletconnect/client" "^1.0.18"
|
"@walletconnect/client" "^1.1.0"
|
||||||
"@walletconnect/http-connection" "^1.0.18"
|
"@walletconnect/http-connection" "^1.1.0"
|
||||||
"@walletconnect/qrcode-modal" "^1.0.18"
|
"@walletconnect/qrcode-modal" "^1.1.0"
|
||||||
"@walletconnect/types" "^1.0.18"
|
"@walletconnect/types" "^1.1.0"
|
||||||
"@walletconnect/utils" "^1.0.18"
|
"@walletconnect/utils" "^1.1.0"
|
||||||
web3-provider-engine "15.0.12"
|
web3-provider-engine "15.0.12"
|
||||||
|
|
||||||
"@webassemblyjs/ast@1.8.5":
|
"@webassemblyjs/ast@1.8.5":
|
||||||
|
@ -2919,11 +2962,16 @@ acorn@^6.0.1, acorn@^6.0.4, acorn@^6.2.1:
|
||||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
|
||||||
integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==
|
integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==
|
||||||
|
|
||||||
acorn@^7.1.1, acorn@^7.3.1:
|
acorn@^7.1.1:
|
||||||
version "7.3.1"
|
version "7.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd"
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd"
|
||||||
integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==
|
integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==
|
||||||
|
|
||||||
|
acorn@^7.4.0:
|
||||||
|
version "7.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c"
|
||||||
|
integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==
|
||||||
|
|
||||||
address@1.1.2, address@^1.0.1:
|
address@1.1.2, address@^1.0.1:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6"
|
resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6"
|
||||||
|
@ -3419,7 +3467,20 @@ authereum@^0.0.4-beta.157:
|
||||||
web3-provider-engine "15.0.4"
|
web3-provider-engine "15.0.4"
|
||||||
web3-utils "1.2.1"
|
web3-utils "1.2.1"
|
||||||
|
|
||||||
autoprefixer@9.8.5, autoprefixer@^9.6.1:
|
autoprefixer@9.8.6:
|
||||||
|
version "9.8.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f"
|
||||||
|
integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==
|
||||||
|
dependencies:
|
||||||
|
browserslist "^4.12.0"
|
||||||
|
caniuse-lite "^1.0.30001109"
|
||||||
|
colorette "^1.2.1"
|
||||||
|
normalize-range "^0.1.2"
|
||||||
|
num2fraction "^1.2.2"
|
||||||
|
postcss "^7.0.32"
|
||||||
|
postcss-value-parser "^4.1.0"
|
||||||
|
|
||||||
|
autoprefixer@^9.6.1:
|
||||||
version "9.8.5"
|
version "9.8.5"
|
||||||
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.5.tgz#2c225de229ddafe1d1424c02791d0c3e10ccccaa"
|
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.5.tgz#2c225de229ddafe1d1424c02791d0c3e10ccccaa"
|
||||||
integrity sha512-C2p5KkumJlsTHoNv9w31NrBRgXhf6eCMteJuHZi2xhkgC+5Vm40MEtCKPhc0qdgAOhox0YPy1SQHTAky05UoKg==
|
integrity sha512-C2p5KkumJlsTHoNv9w31NrBRgXhf6eCMteJuHZi2xhkgC+5Vm40MEtCKPhc0qdgAOhox0YPy1SQHTAky05UoKg==
|
||||||
|
@ -4285,29 +4346,28 @@ bn.js@^5.1.1, bn.js@^5.1.2:
|
||||||
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0"
|
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0"
|
||||||
integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==
|
integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==
|
||||||
|
|
||||||
bnc-onboard@1.10.3:
|
bnc-onboard@1.11.0:
|
||||||
version "1.10.3"
|
version "1.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/bnc-onboard/-/bnc-onboard-1.10.3.tgz#c05ce2af4d5538f0be51a08eea30e2264f830fd2"
|
resolved "https://registry.yarnpkg.com/bnc-onboard/-/bnc-onboard-1.11.0.tgz#cb3d79b702a15d12114aa649beddb2ec5ea83e70"
|
||||||
integrity sha512-4zH1CNaiyn6cYkAak4swaVa+1EpFzgJI8ZA8GL1A/SJqyig699h9gq60P+0R8Ga5xo2Pzr/WaVpy4jMUgcXPbQ==
|
integrity sha512-hHB+xb6SULRxQh/Bm5DBEfg/4/QLI/B9q/h3AyMf+21FMmJ66DUODDsoIwbiq1fh3IrwHpoSmNLdb2nTeN0Wog==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ledgerhq/hw-app-eth" "^5.19.0"
|
"@ledgerhq/hw-app-eth" "^5.21.0"
|
||||||
"@ledgerhq/hw-transport-u2f" "^5.19.0"
|
"@ledgerhq/hw-transport-u2f" "^5.21.0"
|
||||||
"@portis/web3" "^2.0.0-beta.55"
|
"@portis/web3" "^2.0.0-beta.57"
|
||||||
"@toruslabs/torus-embed" "^1.3.0"
|
"@toruslabs/torus-embed" "^1.8.2"
|
||||||
"@unilogin/provider" "^0.5.21"
|
"@unilogin/provider" "^0.6.1"
|
||||||
"@walletconnect/web3-provider" "^1.0.13"
|
"@walletconnect/web3-provider" "^1.1.0"
|
||||||
authereum "^0.0.4-beta.157"
|
authereum "^0.0.4-beta.157"
|
||||||
bignumber.js "^9.0.0"
|
bignumber.js "^9.0.0"
|
||||||
bnc-sdk "^2.1.4"
|
bnc-sdk "^2.1.4"
|
||||||
bowser "^2.5.2"
|
bowser "^2.10.0"
|
||||||
ethereumjs-tx "^2.1.2"
|
ethereumjs-tx "^2.1.2"
|
||||||
ethereumjs-util "^6.2.0"
|
ethereumjs-util "^7.0.3"
|
||||||
ethereumjs-wallet "^0.6.3"
|
fortmatic "^2.2.1"
|
||||||
fortmatic "^0.8.2"
|
hdkey "^2.0.1"
|
||||||
hdkey "^1.1.1"
|
regenerator-runtime "^0.13.7"
|
||||||
regenerator-runtime "^0.13.3"
|
|
||||||
squarelink "^1.1.4"
|
squarelink "^1.1.4"
|
||||||
trezor-connect "^8.1.2"
|
trezor-connect "^8.1.9"
|
||||||
walletlink "^2.0.2"
|
walletlink "^2.0.2"
|
||||||
web3-provider-engine "^15.0.4"
|
web3-provider-engine "^15.0.4"
|
||||||
|
|
||||||
|
@ -4357,7 +4417,7 @@ boolean@^3.0.0, boolean@^3.0.1:
|
||||||
resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.1.tgz#35ecf2b4a2ee191b0b44986f14eb5f052a5cbb4f"
|
resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.1.tgz#35ecf2b4a2ee191b0b44986f14eb5f052a5cbb4f"
|
||||||
integrity sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==
|
integrity sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==
|
||||||
|
|
||||||
bowser@^2.5.2:
|
bowser@^2.10.0:
|
||||||
version "2.10.0"
|
version "2.10.0"
|
||||||
resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.10.0.tgz#be3736f161c4bb8b10958027ab99465d2a811198"
|
resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.10.0.tgz#be3736f161c4bb8b10958027ab99465d2a811198"
|
||||||
integrity sha512-OCsqTQboTEWWsUjcp5jLSw2ZHsBiv2C105iFs61bOT0Hnwi9p7/uuXdd7mu8RYcarREfdjNN+8LitmEHATsLYg==
|
integrity sha512-OCsqTQboTEWWsUjcp5jLSw2ZHsBiv2C105iFs61bOT0Hnwi9p7/uuXdd7mu8RYcarREfdjNN+8LitmEHATsLYg==
|
||||||
|
@ -4837,6 +4897,11 @@ caniuse-lite@^1.0.30001097:
|
||||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001104.tgz#4e3d5b3b1dd3c3529f10cb7f519c62ba3e579f5d"
|
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001104.tgz#4e3d5b3b1dd3c3529f10cb7f519c62ba3e579f5d"
|
||||||
integrity sha512-pkpCg7dmI/a7WcqM2yfdOiT4Xx5tzyoHAXWsX5/HxZ3TemwDZs0QXdqbE0UPLPVy/7BeK7693YfzfRYfu1YVpg==
|
integrity sha512-pkpCg7dmI/a7WcqM2yfdOiT4Xx5tzyoHAXWsX5/HxZ3TemwDZs0QXdqbE0UPLPVy/7BeK7693YfzfRYfu1YVpg==
|
||||||
|
|
||||||
|
caniuse-lite@^1.0.30001109:
|
||||||
|
version "1.0.30001111"
|
||||||
|
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001111.tgz#dd0ce822c70eb6c7c068e4a55c22e19ec1501298"
|
||||||
|
integrity sha512-xnDje2wchd/8mlJu8sXvWxOGvMgv+uT3iZ3bkIAynKOzToCssWCmkz/ZIkQBs/2pUB4uwnJKVORWQ31UkbVjOg==
|
||||||
|
|
||||||
capture-exit@^2.0.0:
|
capture-exit@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4"
|
resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4"
|
||||||
|
@ -5190,7 +5255,7 @@ color@^3.0.0:
|
||||||
color-convert "^1.9.1"
|
color-convert "^1.9.1"
|
||||||
color-string "^1.5.2"
|
color-string "^1.5.2"
|
||||||
|
|
||||||
colorette@^1.2.0:
|
colorette@^1.2.0, colorette@^1.2.1:
|
||||||
version "1.2.1"
|
version "1.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
|
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
|
||||||
integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
|
integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
|
||||||
|
@ -5887,6 +5952,11 @@ csstype@^2.2.0, csstype@^2.5.2, csstype@^2.6.5, csstype@^2.6.7:
|
||||||
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.11.tgz#452f4d024149ecf260a852b025e36562a253ffc5"
|
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.11.tgz#452f4d024149ecf260a852b025e36562a253ffc5"
|
||||||
integrity sha512-l8YyEC9NBkSm783PFTvh0FmJy7s5pFKrDp49ZL7zBGX3fWkO+N4EEyan1qqp8cwPLDcD0OSdyY6hAMoxp34JFw==
|
integrity sha512-l8YyEC9NBkSm783PFTvh0FmJy7s5pFKrDp49ZL7zBGX3fWkO+N4EEyan1qqp8cwPLDcD0OSdyY6hAMoxp34JFw==
|
||||||
|
|
||||||
|
csstype@^3.0.2:
|
||||||
|
version "3.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.2.tgz#ee5ff8f208c8cd613b389f7b222c9801ca62b3f7"
|
||||||
|
integrity sha512-ofovWglpqoqbfLNOTBNZLSbMuGrblAf1efvvArGKOZMBrIoJeu5UsAipQolkijtyQx5MtAzT/J9IHj/CEY1mJw==
|
||||||
|
|
||||||
currency-flags@2.1.2:
|
currency-flags@2.1.2:
|
||||||
version "2.1.2"
|
version "2.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/currency-flags/-/currency-flags-2.1.2.tgz#483bbc69fcc7f0de00ec3a781047767311feba9d"
|
resolved "https://registry.yarnpkg.com/currency-flags/-/currency-flags-2.1.2.tgz#483bbc69fcc7f0de00ec3a781047767311feba9d"
|
||||||
|
@ -7529,7 +7599,7 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereum
|
||||||
rlp "^2.0.0"
|
rlp "^2.0.0"
|
||||||
safe-buffer "^5.1.1"
|
safe-buffer "^5.1.1"
|
||||||
|
|
||||||
ethereumjs-util@^6.0.0, ethereumjs-util@^6.1.0, ethereumjs-util@^6.2.0:
|
ethereumjs-util@^6.0.0, ethereumjs-util@^6.1.0:
|
||||||
version "6.2.1"
|
version "6.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69"
|
resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69"
|
||||||
integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==
|
integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==
|
||||||
|
@ -7542,6 +7612,18 @@ ethereumjs-util@^6.0.0, ethereumjs-util@^6.1.0, ethereumjs-util@^6.2.0:
|
||||||
ethjs-util "0.1.6"
|
ethjs-util "0.1.6"
|
||||||
rlp "^2.2.3"
|
rlp "^2.2.3"
|
||||||
|
|
||||||
|
ethereumjs-util@^7.0.3:
|
||||||
|
version "7.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.0.4.tgz#f4b2022a91416bf421b35b0d5b81c21e8abd8b7f"
|
||||||
|
integrity sha512-isldtbCn9fdnhBPxedMNbFkNWVZ8ZdQvKRDSrdflame/AycAPKMer+vEpndpBxYIB3qxN6bd3Gh1YCQW9LDkCQ==
|
||||||
|
dependencies:
|
||||||
|
"@types/bn.js" "^4.11.3"
|
||||||
|
bn.js "^5.1.2"
|
||||||
|
create-hash "^1.1.2"
|
||||||
|
ethereum-cryptography "^0.1.3"
|
||||||
|
ethjs-util "0.1.6"
|
||||||
|
rlp "^2.2.4"
|
||||||
|
|
||||||
ethereumjs-vm@2.2.2:
|
ethereumjs-vm@2.2.2:
|
||||||
version "2.2.2"
|
version "2.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.2.2.tgz#786317d2c63e547d936c1a468607510e70b4c262"
|
resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.2.2.tgz#786317d2c63e547d936c1a468607510e70b4c262"
|
||||||
|
@ -7652,7 +7734,7 @@ eventemitter3@4.0.4, eventemitter3@^4.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384"
|
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384"
|
||||||
integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==
|
integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==
|
||||||
|
|
||||||
events@^3.0.0, events@^3.1.0:
|
events@^3.0.0, events@^3.1.0, events@^3.2.0:
|
||||||
version "3.2.0"
|
version "3.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379"
|
resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379"
|
||||||
integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==
|
integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==
|
||||||
|
@ -8214,12 +8296,10 @@ form-data@~2.3.2:
|
||||||
combined-stream "^1.0.6"
|
combined-stream "^1.0.6"
|
||||||
mime-types "^2.1.12"
|
mime-types "^2.1.12"
|
||||||
|
|
||||||
fortmatic@^0.8.2:
|
fortmatic@^2.2.1:
|
||||||
version "0.8.2"
|
version "2.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/fortmatic/-/fortmatic-0.8.2.tgz#a93fc97d1a1808faf82210d6554e1ebdcb6c5379"
|
resolved "https://registry.yarnpkg.com/fortmatic/-/fortmatic-2.2.1.tgz#91ce9159c1fe539bd87e483125fca5c27a410a86"
|
||||||
integrity sha512-eIuoTpDzK0CN92yOQyEbKoFuaBgxqXjmNMmUbvTphirKPkufSyYkqgHHuAJzgFe3HC5JFuWb/IlrMvqWoe/gKQ==
|
integrity sha512-PEfPoErJSErU2A8iYD2Mab2c8eJK5dCdCr1jR/8yc49aEAlyQ4UXnZXyeO6MU5zBGkDAZmg9brnRSPzc+8MKPQ==
|
||||||
dependencies:
|
|
||||||
"@babel/runtime" "7.3.4"
|
|
||||||
|
|
||||||
forwarded@~0.1.2:
|
forwarded@~0.1.2:
|
||||||
version "0.1.2"
|
version "0.1.2"
|
||||||
|
@ -8797,14 +8877,14 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7:
|
||||||
inherits "^2.0.3"
|
inherits "^2.0.3"
|
||||||
minimalistic-assert "^1.0.1"
|
minimalistic-assert "^1.0.1"
|
||||||
|
|
||||||
hdkey@^1.1.1:
|
hdkey@^2.0.1:
|
||||||
version "1.1.2"
|
version "2.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/hdkey/-/hdkey-1.1.2.tgz#c60f9cf6f90fbf24a8a52ea06893f36a0108cd3e"
|
resolved "https://registry.yarnpkg.com/hdkey/-/hdkey-2.0.1.tgz#0a211d0c510bfc44fa3ec9d44b13b634641cad74"
|
||||||
integrity sha512-PTQ4VKu0oRnCrYfLp04iQZ7T2Cxz0UsEXYauk2j8eh6PJXCpbXuCFhOmtIFtbET0i3PMWmHN9J11gU8LEgUljQ==
|
integrity sha512-c+tl9PHG9/XkGgG0tD7CJpRVaE0jfZizDNmnErUAKQ4EjQSOcOUcV3EN9ZEZS8pZ4usaeiiK0H7stzuzna8feA==
|
||||||
dependencies:
|
dependencies:
|
||||||
bs58check "^2.1.2"
|
bs58check "^2.1.2"
|
||||||
safe-buffer "^5.1.1"
|
safe-buffer "^5.1.1"
|
||||||
secp256k1 "^3.0.1"
|
secp256k1 "^4.0.0"
|
||||||
|
|
||||||
he@1.2.0, he@^1.2.0:
|
he@1.2.0, he@^1.2.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
|
@ -14481,16 +14561,16 @@ regenerator-runtime@^0.11.0:
|
||||||
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
|
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
|
||||||
integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
|
integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
|
||||||
|
|
||||||
regenerator-runtime@^0.12.0:
|
|
||||||
version "0.12.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de"
|
|
||||||
integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==
|
|
||||||
|
|
||||||
regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4:
|
regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4:
|
||||||
version "0.13.6"
|
version "0.13.6"
|
||||||
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.6.tgz#d236043c46ffab2968c1ef651803d8acdea8ed65"
|
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.6.tgz#d236043c46ffab2968c1ef651803d8acdea8ed65"
|
||||||
integrity sha512-GmwlGiazQEbOwQWDdbbaP10i15pGtScYWLbMZuu+RKRz0cZ+g8IUONazBnaZqe7j1670IV1HgE4/8iy7CQPf4Q==
|
integrity sha512-GmwlGiazQEbOwQWDdbbaP10i15pGtScYWLbMZuu+RKRz0cZ+g8IUONazBnaZqe7j1670IV1HgE4/8iy7CQPf4Q==
|
||||||
|
|
||||||
|
regenerator-runtime@^0.13.7:
|
||||||
|
version "0.13.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
|
||||||
|
integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
|
||||||
|
|
||||||
regenerator-transform@^0.10.0:
|
regenerator-transform@^0.10.0:
|
||||||
version "0.10.1"
|
version "0.10.1"
|
||||||
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd"
|
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd"
|
||||||
|
@ -14846,7 +14926,7 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
|
||||||
hash-base "^3.0.0"
|
hash-base "^3.0.0"
|
||||||
inherits "^2.0.1"
|
inherits "^2.0.1"
|
||||||
|
|
||||||
rlp@^2.0.0, rlp@^2.2.3, rlp@^2.2.6:
|
rlp@^2.0.0, rlp@^2.2.3, rlp@^2.2.4, rlp@^2.2.6:
|
||||||
version "2.2.6"
|
version "2.2.6"
|
||||||
resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c"
|
resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c"
|
||||||
integrity sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==
|
integrity sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==
|
||||||
|
@ -15070,7 +15150,7 @@ secp256k1@3.8.0, secp256k1@^3.0.1, secp256k1@^3.7.1, secp256k1@^3.8.0:
|
||||||
nan "^2.14.0"
|
nan "^2.14.0"
|
||||||
safe-buffer "^5.1.2"
|
safe-buffer "^5.1.2"
|
||||||
|
|
||||||
secp256k1@^4.0.1:
|
secp256k1@^4.0.0, secp256k1@^4.0.1:
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1"
|
resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1"
|
||||||
integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==
|
integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==
|
||||||
|
@ -16505,14 +16585,14 @@ tree-kill@^1.2.2:
|
||||||
resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
|
resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
|
||||||
integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==
|
integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==
|
||||||
|
|
||||||
trezor-connect@^8.1.2:
|
trezor-connect@^8.1.9:
|
||||||
version "8.1.8"
|
version "8.1.10"
|
||||||
resolved "https://registry.yarnpkg.com/trezor-connect/-/trezor-connect-8.1.8.tgz#db46f2637047fa45fef3f5a7c6f16a792cc2067a"
|
resolved "https://registry.yarnpkg.com/trezor-connect/-/trezor-connect-8.1.10.tgz#1f80525c91684e7dc062f2e5eb6d93502e61172b"
|
||||||
integrity sha512-ZTgKmSd5scbUAdHwz6DLwILVoNRe//6fQcuaVDL0tbWHvB5MNajGlLDzPG/TM7y156mzXmXF2Y4LJQqLDQhaIw==
|
integrity sha512-q1Hscxjyr1PtZj02yRu9rKps9VrSZ4koXgE8DM1QES2Sc7buhNqHwvRZQLQopUDXSoZh2vgObQNBrJsNHbWBpg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.10.2"
|
"@babel/runtime" "^7.11.0"
|
||||||
events "^3.1.0"
|
events "^3.2.0"
|
||||||
whatwg-fetch "^3.0.0"
|
whatwg-fetch "^3.3.1"
|
||||||
|
|
||||||
trim-newlines@^1.0.0:
|
trim-newlines@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
|
@ -18014,6 +18094,7 @@ websocket@^1.0.31:
|
||||||
dependencies:
|
dependencies:
|
||||||
debug "^2.2.0"
|
debug "^2.2.0"
|
||||||
es5-ext "^0.10.50"
|
es5-ext "^0.10.50"
|
||||||
|
gulp "^4.0.2"
|
||||||
nan "^2.14.0"
|
nan "^2.14.0"
|
||||||
typedarray-to-buffer "^3.1.5"
|
typedarray-to-buffer "^3.1.5"
|
||||||
yaeti "^0.0.6"
|
yaeti "^0.0.6"
|
||||||
|
@ -18035,6 +18116,11 @@ whatwg-fetch@>=0.10.0, whatwg-fetch@^3.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.2.0.tgz#8e134f701f0a4ab5fda82626f113e2b647fd16dc"
|
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.2.0.tgz#8e134f701f0a4ab5fda82626f113e2b647fd16dc"
|
||||||
integrity sha512-SdGPoQMMnzVYThUbSrEvqTlkvC1Ux27NehaJ/GUHBfNrh5Mjg+1/uRyFMwVnxO2MrikMWvWAqUGgQOfVU4hT7w==
|
integrity sha512-SdGPoQMMnzVYThUbSrEvqTlkvC1Ux27NehaJ/GUHBfNrh5Mjg+1/uRyFMwVnxO2MrikMWvWAqUGgQOfVU4hT7w==
|
||||||
|
|
||||||
|
whatwg-fetch@^3.3.1:
|
||||||
|
version "3.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.3.1.tgz#6c1acf37dec176b0fd6bc9a74b616bec2f612935"
|
||||||
|
integrity sha512-faXTmGDcLuEPBpJwb5LQfyxvubKiE+RlbmmweFGKjvIPFj4uHTTfdtTIkdTRhC6OSH9S9eyYbx8kZ0UEaQqYTA==
|
||||||
|
|
||||||
whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0:
|
whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0:
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
|
resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
|
||||||
|
|
Loading…
Reference in New Issue