Merge branch 'master' into audit

This commit is contained in:
Danil Kovtonyuk 2022-06-15 16:37:28 +10:00
commit 1e3ea14f69
No known key found for this signature in database
GPG Key ID: E72A919BF08C3746
35 changed files with 305 additions and 136 deletions

View File

@ -1,14 +1,20 @@
<template> <template>
<b-tab-item :label="$t('deposit')"> <b-tab-item :label="$t('deposit')" header-class="button_tab_deposit">
<fieldset> <fieldset>
<b-field :label="$t('token')"> <b-field :label="$t('token')" data-test="token_list_dropdown">
<b-dropdown v-model="selectedToken" expanded aria-role="list"> <b-dropdown v-model="selectedToken" expanded aria-role="list">
<div slot="trigger" class="control"> <div slot="trigger" class="control">
<div class="input"> <div class="input">
<span>{{ selectedCurrency }}</span> <span>{{ selectedCurrency }}</span>
</div> </div>
</div> </div>
<b-dropdown-item v-for="(token, key) in tokens" :key="key" aria-role="listitem" :value="key"> <b-dropdown-item
v-for="(token, key) in tokens"
:key="key"
aria-role="listitem"
:value="key"
:data-test="token.dataTest"
>
{{ token.symbol }} {{ token.symbol }}
</b-dropdown-item> </b-dropdown-item>
</b-dropdown> </b-dropdown>
@ -18,7 +24,7 @@
{{ $t('amount') }} {{ $t('amount') }}
<b-tooltip :label="$t('amountTooltip')" size="is-small" position="is-right" multilined> <b-tooltip :label="$t('amountTooltip')" size="is-small" position="is-right" multilined>
<button class="button is-primary has-icon"> <button class="button is-primary has-icon">
<span class="icon icon-info"></span> <span class="icon icon-info" data-test="choose_amount_info"></span>
</button> </button>
</b-tooltip> </b-tooltip>
</template> </template>
@ -30,13 +36,24 @@
@input="changeAmount" @input="changeAmount"
> >
<template v-for="({ amount, address }, key) in amounts"> <template v-for="({ amount, address }, key) in amounts">
<b-step-item :key="key" :label="shortenAmount(amount)" :clickable="address !== ''"></b-step-item> <b-step-item
:key="key"
:label="shortenAmount(amount)"
:clickable="address !== ''"
:header-class="`token-${selectedToken}-${amount}`"
></b-step-item>
</template> </template>
</b-steps> </b-steps>
</b-field> </b-field>
</fieldset> </fieldset>
<connect-button v-if="!isLoggedIn" type="is-primary is-fullwidth" /> <connect-button v-if="!isLoggedIn" type="is-primary is-fullwidth" data-test="button_connect" />
<b-button v-else type="is-primary is-fullwidth" :loading="isDepositBtnClicked" @click="onDeposit"> <b-button
v-else
type="is-primary is-fullwidth"
:loading="isDepositBtnClicked"
data-test="button_deposit"
@click="onDeposit"
>
{{ $t('depositButton') }} {{ $t('depositButton') }}
</b-button> </b-button>
</b-tab-item> </b-tab-item>
@ -79,7 +96,14 @@ export default {
} }
}, },
tokens() { tokens() {
return this.networkConfig.tokens return Object.keys(this.networkConfig.tokens).reduce((acc, curr) => {
const item = this.networkConfig.tokens[curr]
acc[curr] = {
...item,
dataTest: `token_list_${item.symbol.toLowerCase()}`
}
return acc
}, {})
}, },
selectedToken: { selectedToken: {
get() { get() {

View File

@ -46,7 +46,9 @@
</i18n> </i18n>
</b-checkbox> </b-checkbox>
<template v-if="!isSetupAccount || !isEncrypted"> <template v-if="!isSetupAccount || !isEncrypted">
<b-checkbox v-model="isBackuped">{{ $t('iBackedUpTheNote') }}</b-checkbox> <b-checkbox v-model="isBackuped" data-test="backup_note_checkbox">{{
$t('iBackedUpTheNote')
}}</b-checkbox>
<div v-if="isBackuped && isIPFS" class="notice is-warning"> <div v-if="isBackuped && isIPFS" class="notice is-warning">
<div class="notice__p">{{ $t('yourNoteWontBeSaved') }}</div> <div class="notice__p">{{ $t('yourNoteWontBeSaved') }}</div>
</div> </div>
@ -56,6 +58,7 @@
v-else v-else
type="is-primary is-fullwidth" type="is-primary is-fullwidth"
:disabled="disableButton || (!isValidGasPrice && !eipSupported)" :disabled="disableButton || (!isValidGasPrice && !eipSupported)"
data-test="send_deposit_button"
@click="_sendDeposit" @click="_sendDeposit"
> >
{{ $t('sendDeposit') }} {{ $t('sendDeposit') }}

View File

@ -31,6 +31,7 @@
<div class="details"> <div class="details">
<p class="detail"> <p class="detail">
<a <a
data-test="txhash_text"
class="detail-description" class="detail-description"
:href="txExplorerUrl(tx.txHash)" :href="txExplorerUrl(tx.txHash)"
target="_blank" target="_blank"
@ -47,6 +48,7 @@
<b-tooltip :active="activeCopyTooltip" :label="tooltipCopy" position="is-left" multilined> <b-tooltip :active="activeCopyTooltip" :label="tooltipCopy" position="is-left" multilined>
<b-button <b-button
type="is-primary hide-icon-desktop" type="is-primary hide-icon-desktop"
data-test="decrypt_note_button"
size="is-small" size="is-small"
icon-left="decrypt" icon-left="decrypt"
:disabled="disableCopyButton" :disabled="disableCopyButton"
@ -55,7 +57,13 @@
{{ $t('decrypt') }} {{ $t('decrypt') }}
</b-button> </b-button>
</b-tooltip> </b-tooltip>
<b-button type="is-dark" size="is-small" icon-right="remove" @click="onClose" /> <b-button
type="is-dark"
data-test="remove_note_button"
size="is-small"
icon-right="remove"
@click="onClose"
/>
</div> </div>
</div> </div>
</div> </div>

View File

@ -15,6 +15,7 @@
<div v-else class="details"> <div v-else class="details">
<p class="detail"> <p class="detail">
<a <a
data-test="txhash_text"
class="detail-description" class="detail-description"
:href="txExplorerUrl(job.txHash)" :href="txExplorerUrl(job.txHash)"
target="_blank" target="_blank"

View File

@ -1,7 +1,7 @@
<template> <template>
<b-loading v-model="enabled"> <b-loading v-model="enabled">
<div class="loading-container"> <div class="loading-container">
<div class="loading-tornado"></div> <div class="loading-tornado" data-test="tornado_loader"></div>
<div class="loading-message">{{ message }}...</div> <div class="loading-message">{{ message }}...</div>
<approve-loader v-if="isApprove" /> <approve-loader v-if="isApprove" />
</div> </div>

View File

@ -1,7 +1,7 @@
<template> <template>
<b-navbar wrapper-class="container" class="header"> <b-navbar wrapper-class="container" class="header">
<template slot="brand"> <template slot="brand">
<b-navbar-item tag="router-link" to="/" active-class=""> <b-navbar-item tag="router-link" to="/" data-test="tornado_main_page" active-class="">
<Logo /> <Logo />
</b-navbar-item> </b-navbar-item>
</template> </template>
@ -10,17 +10,19 @@
v-if="isEnabledGovernance" v-if="isEnabledGovernance"
tag="router-link" tag="router-link"
to="/governance" to="/governance"
data-test="voting_link"
:active="$route.path.includes('governance')" :active="$route.path.includes('governance')"
class="has-tag" class="has-tag"
> >
{{ $t('governance') }} <span v-if="hasActiveProposals" class="navbar-item--tag"></span> {{ $t('governance') }} <span v-if="hasActiveProposals" class="navbar-item--tag"></span>
</b-navbar-item> </b-navbar-item>
<b-navbar-item tag="router-link" to="/compliance"> <b-navbar-item tag="router-link" to="/compliance" data-test="compliance_link">
{{ $t('compliance') }} {{ $t('compliance') }}
</b-navbar-item> </b-navbar-item>
<b-navbar-item <b-navbar-item
href="https://docs.tornado.cash" href="https://docs.tornado.cash"
target="_blank" target="_blank"
data-test="docs_link"
rel="noopener noreferrer" rel="noopener noreferrer"
class="has-tag" class="has-tag"
> >
@ -32,9 +34,16 @@
<b-navbar-item tag="div"> <b-navbar-item tag="div">
<div class="buttons"> <div class="buttons">
<network-navbar-icon /> <network-navbar-icon />
<metamask-navbar-icon /> <metamask-navbar-icon data-test="metamask_connection_state" />
<indicator /> <indicator data-test="note_account_connection_state" />
<b-button icon-left="settings" type="is-primary" outlined @mousedown.prevent @click="onAccount"> <b-button
icon-left="settings"
type="is-primary"
outlined
data-test="button_settings"
@mousedown.prevent
@click="onAccount"
>
{{ $t('settings') }} {{ $t('settings') }}
</b-button> </b-button>
</div> </div>

View File

@ -6,10 +6,11 @@
</header> </header>
<div class="networks"> <div class="networks">
<div <div
v-for="{ name, chainId } in networks" v-for="{ name, chainId, dataTest } in networks"
:key="chainId" :key="chainId"
class="item" class="item"
:class="{ 'is-active': chainId === netId }" :class="{ 'is-active': chainId === netId }"
:data-test="dataTest"
@click="setNetwork(chainId)" @click="setNetwork(chainId)"
> >
<b-icon class="network-icon" :icon="`${name}`.replace(/\)?\s\(?/g, '-').toLowerCase()" /> <b-icon class="network-icon" :icon="`${name}`.replace(/\)?\s\(?/g, '-').toLowerCase()" />
@ -39,6 +40,7 @@ export default {
return Object.keys(this.networkConfig).map((key) => { return Object.keys(this.networkConfig).map((key) => {
return { return {
name: this.networkConfig[key].networkName, name: this.networkConfig[key].networkName,
dataTest: `${this.networkConfig[key].networkName.split(' ').join('_')}__network`,
chainId: Number(key.replace('netId', '')) chainId: Number(key.replace('netId', ''))
} }
}) })

View File

@ -1,5 +1,7 @@
<template> <template>
<b-button :icon-left="iconName" class="network-button" @click="onClick">{{ shortNetworkName }}</b-button> <b-button :icon-left="iconName" class="network-button" data-test="button_network" @click="onClick">{{
shortNetworkName
}}</b-button>
</template> </template>
<script> <script>

View File

@ -26,7 +26,13 @@
> >
Tornado Cash Nova Tornado Cash Nova
</a> </a>
<a v-if="notice.txHash" :href="txExplorerUrl(notice.txHash)" target="_blank" rel="noopener noreferrer"> <a
v-if="notice.txHash"
:href="txExplorerUrl(notice.txHash)"
target="_blank"
data-test="popup_message"
rel="noopener noreferrer"
>
{{ $t('viewOnEtherscan') }} {{ $t('viewOnEtherscan') }}
</a> </a>
<n-link v-else-if="notice.routerLink" v-bind="notice.routerLink.params" @onClick="$forceUpdate()"> <n-link v-else-if="notice.routerLink" v-bind="notice.routerLink.params" @onClick="$forceUpdate()">

View File

@ -5,7 +5,7 @@
<button type="button" class="delete" @click="$parent.cancel('escape')" /> <button type="button" class="delete" @click="$parent.cancel('escape')" />
</header> </header>
<div class="field"> <div class="field">
<b-field :label="$t('rpc')" class="has-custom-field"> <b-field :label="$t('rpc')" class="has-custom-field" data-test="rpc_endpoint_dropdown">
<b-dropdown v-model="selectedRpc" expanded aria-role="list"> <b-dropdown v-model="selectedRpc" expanded aria-role="list">
<div slot="trigger" class="control" :class="{ 'is-loading': checkingRpc && !isCustomRpc }"> <div slot="trigger" class="control" :class="{ 'is-loading': checkingRpc && !isCustomRpc }">
<div class="input"> <div class="input">
@ -17,11 +17,17 @@
:key="name" :key="name"
:value="name" :value="name"
aria-role="listitem" aria-role="listitem"
:data-test="`rpc_endpoint_${name}`"
@click="checkRpc({ name, url })" @click="checkRpc({ name, url })"
> >
{{ name }} {{ name }}
</b-dropdown-item> </b-dropdown-item>
<b-dropdown-item value="custom" aria-role="listitem" @click="checkRpc({ name: 'custom' })"> <b-dropdown-item
value="custom"
aria-role="listitem"
data-test="rpc_endpoint_custom"
@click="checkRpc({ name: 'custom' })"
>
{{ $t('customRpc') }} {{ $t('customRpc') }}
</b-dropdown-item> </b-dropdown-item>
</b-dropdown> </b-dropdown>
@ -42,10 +48,10 @@
</p> </p>
</div> </div>
<div class="buttons buttons__halfwidth"> <div class="buttons buttons__halfwidth">
<b-button type="is-primary" outlined @mousedown.prevent @click="onReset"> <b-button type="is-primary" outlined data-test="button_reset_rpc" @mousedown.prevent @click="onReset">
{{ $t('reset') }} {{ $t('reset') }}
</b-button> </b-button>
<b-button type="is-primary" :disabled="isDisabledSave" @click="onSave"> <b-button type="is-primary" :disabled="isDisabledSave" data-test="save_rpc_button" @click="onSave">
{{ $t('save') }} {{ $t('save') }}
</b-button> </b-button>
</div> </div>

View File

@ -24,6 +24,7 @@
<p class="detail"> <p class="detail">
<a <a
class="detail-description" class="detail-description"
data-test="txhash_text"
:href="txExplorerUrl(tx.txHash)" :href="txExplorerUrl(tx.txHash)"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
@ -44,11 +45,18 @@
size="is-small" size="is-small"
:disabled="!tx.note" :disabled="!tx.note"
icon-left="copy" icon-left="copy"
data-test="copy_note_button"
> >
{{ $t('note') }} {{ $t('note') }}
</b-button> </b-button>
</b-tooltip> </b-tooltip>
<b-button type="is-dark" size="is-small" icon-right="remove" @click="onClose" /> <b-button
data-test="remove_note_button"
type="is-dark"
size="is-small"
icon-right="remove"
@click="onClose"
/>
</div> </div>
</div> </div>
</div> </div>

View File

@ -35,6 +35,7 @@
type="is-text" type="is-text"
:icon-left="isDataLoading ? '' : 'settings'" :icon-left="isDataLoading ? '' : 'settings'"
:loading="isDataLoading" :loading="isDataLoading"
data-test="button_manage_torn"
@click.native="onManage" @click.native="onManage"
> >
{{ $t('manage') }} {{ $t('manage') }}

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="modal-card box box-modal has-delete"> <div class="modal-card box box-modal has-delete">
<button type="button" class="delete" @click="$emit('close')" /> <button type="button" class="delete" @click="$emit('close')" />
<b-tabs v-model="activeTab" :animated="false" class="is-modal"> <b-tabs v-model="activeTab" :data-test="`tab_${activeTab}`" :animated="false" class="is-modal">
<LockTab /> <LockTab />
<UnlockTab /> <UnlockTab />
<DelegateTab /> <DelegateTab />

View File

@ -1,5 +1,5 @@
<template> <template>
<b-tab-item :label="$t('delegate')"> <b-tab-item :label="$t('delegate')" header-class="delegate_tab">
<div class="p"> <div class="p">
{{ $t('delegateTabDesc') }} {{ $t('delegateTabDesc') }}
</div> </div>

View File

@ -1,5 +1,5 @@
<template> <template>
<b-tab-item :label="$t('lock')"> <b-tab-item :label="$t('lock')" header-class="lock_torn_tab">
<div class="p"> <div class="p">
{{ $t('lockTabDesc') }} {{ $t('lockTabDesc') }}
</div> </div>
@ -7,6 +7,7 @@
<b-field :class="hasErrorAmount ? 'is-warning' : ''"> <b-field :class="hasErrorAmount ? 'is-warning' : ''">
<b-input <b-input
v-model="computedAmountToLock" v-model="computedAmountToLock"
data-test="input_torn_amount_to_lock"
step="0.01" step="0.01"
:min="minAmount" :min="minAmount"
:max="maxAmountToLock" :max="maxAmountToLock"
@ -18,6 +19,7 @@
<div class="control has-button"> <div class="control has-button">
<button <button
class="button is-primary is-small is-outlined" class="button is-primary is-small is-outlined"
data-test="button_max_torn_amount_to_lock"
@mousedown.prevent @mousedown.prevent
@click="setMaxAmountToLock" @click="setMaxAmountToLock"
> >
@ -27,13 +29,26 @@
</b-field> </b-field>
</b-field> </b-field>
<div class="label-with-value"> <div class="label-with-value">
{{ $t('availableBalance') }}: <span><number-format :value="maxAmountToLock" /> TORN</span> {{ $t('availableBalance') }}:
<span><number-format data-test="info_available_balance" :value="maxAmountToLock" /> TORN</span>
</div> </div>
<div class="buttons buttons__halfwidth"> <div class="buttons buttons__halfwidth">
<b-button type="is-primary is-fullwidth" outlined :disabled="disabledApprove" @click="onApprove"> <b-button
type="is-primary is-fullwidth"
outlined
data-test="button_approve_torn"
:disabled="disabledApprove"
@click="onApprove"
>
{{ $t('approve') }} {{ $t('approve') }}
</b-button> </b-button>
<b-button type="is-primary is-fullwidth" outlined :disabled="disabledLock" @click="onLock"> <b-button
type="is-primary is-fullwidth"
outlined
data-test="button_lock_torn"
:disabled="disabledLock"
@click="onLock"
>
{{ $t('lock') }} {{ $t('lock') }}
</b-button> </b-button>
</div> </div>

View File

@ -1,5 +1,5 @@
<template> <template>
<b-tab-item :label="$t('unlock')"> <b-tab-item :label="$t('unlock')" header-class="unlock_torn_tab">
<div class="p"> <div class="p">
{{ $t('unlockTabDesc') }} {{ $t('unlockTabDesc') }}
</div> </div>
@ -7,6 +7,7 @@
<b-field :class="hasErrorAmount ? 'is-warning' : ''"> <b-field :class="hasErrorAmount ? 'is-warning' : ''">
<b-input <b-input
v-model="computedAmountToUnlock" v-model="computedAmountToUnlock"
data-test="input_torn_amount_to_unlock"
step="0.01" step="0.01"
:min="minAmount" :min="minAmount"
:max="maxAmountToUnlock" :max="maxAmountToUnlock"
@ -18,6 +19,7 @@
<div class="control has-button"> <div class="control has-button">
<button <button
class="button is-primary is-small is-outlined" class="button is-primary is-small is-outlined"
data-test="button_max_torn_amount_to_unlock"
@mousedown.prevent @mousedown.prevent
@click="setMaxAmountToUnlock" @click="setMaxAmountToUnlock"
> >
@ -27,7 +29,8 @@
</b-field> </b-field>
</b-field> </b-field>
<div class="label-with-value"> <div class="label-with-value">
{{ $t('lockedBalance') }}: <span><number-format :value="maxAmountToUnlock" /> TORN</span> {{ $t('lockedBalance') }}:
<span><number-format data-test="info_locked_balance" :value="maxAmountToUnlock" /> TORN</span>
</div> </div>
<b-tooltip <b-tooltip
class="is-block" class="is-block"
@ -36,7 +39,13 @@
:active="!hasLockedBalance || !canWithdraw" :active="!hasLockedBalance || !canWithdraw"
multilined multilined
> >
<b-button :disabled="disableUnlock" type="is-primary is-fullwidth" outlined @click="onUnlock"> <b-button
:disabled="disableUnlock"
type="is-primary is-fullwidth"
outlined
data-test="button_unlock_torn"
@click="onUnlock"
>
{{ $t('unlock') }} {{ $t('unlock') }}
</b-button> </b-button>
</b-tooltip> </b-tooltip>

View File

@ -1,7 +1,7 @@
<template> <template>
<b-tab-item :label="$t('relayer')" value="relayer"> <b-tab-item :label="$t('relayer')" value="relayer" header-class="withdrawal_settings_relayer_tab">
<div class="field"> <div class="field">
<b-field :label="$t('relayer')"> <b-field :label="$t('relayer')" data-test="withdrawal_settings_relayer_dropdown">
<b-dropdown v-model="selectedRelayer" expanded aria-role="list" @change="onChangeRelayer"> <b-dropdown v-model="selectedRelayer" expanded aria-role="list" @change="onChangeRelayer">
<div slot="trigger" class="control" :class="{ 'is-loading': checkingRelayer || isLoadingRelayers }"> <div slot="trigger" class="control" :class="{ 'is-loading': checkingRelayer || isLoadingRelayers }">
<div class="input"> <div class="input">
@ -27,6 +27,7 @@
ref="customInput" ref="customInput"
v-model="customRelayerUrl" v-model="customRelayerUrl"
type="url" type="url"
data-test="enter_relayer_url_field"
:placeholder="$t('pasteYourRelayerUrlorEnsRecord')" :placeholder="$t('pasteYourRelayerUrlorEnsRecord')"
:custom-class="hasErrorRelayer.type" :custom-class="hasErrorRelayer.type"
:use-html5-validation="false" :use-html5-validation="false"
@ -56,13 +57,20 @@
:service-fee="relayer.tornadoServiceFee" :service-fee="relayer.tornadoServiceFee"
/> />
<div class="buttons buttons__halfwidth mt-5"> <div class="buttons buttons__halfwidth mt-5">
<b-button type="is-primary" outlined @mousedown.prevent @click="onReset"> <b-button
type="is-primary"
outlined
data-test="withdrawal_settings_reset_button"
@mousedown.prevent
@click="onReset"
>
{{ $t('reset') }} {{ $t('reset') }}
</b-button> </b-button>
<b-button <b-button
type="is-primary" type="is-primary"
:disabled="isDisabledSave" :disabled="isDisabledSave"
:loading="checkingRelayer || isLoadingRelayers" :loading="checkingRelayer || isLoadingRelayers"
data-test="withdrawal_settings_save_button"
@click="onSave" @click="onSave"
> >
{{ $t('save') }} {{ $t('save') }}

View File

@ -1,5 +1,5 @@
<template> <template>
<b-tab-item :label="$t('wallet')" value="wallet"> <b-tab-item :label="$t('wallet')" value="wallet" header-class="withdrawal_settings_wallet_tab">
<fieldset :disabled="isNotLoggedIn"> <fieldset :disabled="isNotLoggedIn">
<div class="notice is-warning"> <div class="notice is-warning">
<div class="notice__p">{{ $t('withdrawWalletWarning', { currency: networkCurrency }) }}</div> <div class="notice__p">{{ $t('withdrawWalletWarning', { currency: networkCurrency }) }}</div>

View File

@ -2,7 +2,7 @@
<div class="modal-card box box-modal is-wallet-modal"> <div class="modal-card box box-modal is-wallet-modal">
<header class="box-modal-header is-spaced"> <header class="box-modal-header is-spaced">
<div class="box-modal-title">{{ $t('yourWallet') }}</div> <div class="box-modal-title">{{ $t('yourWallet') }}</div>
<button type="button" class="delete" @click="$emit('close')" /> <button type="button" class="delete" data-test="close_popup_button" @click="$emit('close')" />
</header> </header>
<div class="note"> <div class="note">
{{ $t('pleaseSelectYourWeb3Wallet') }} {{ $t('pleaseSelectYourWeb3Wallet') }}
@ -22,11 +22,16 @@
<button <button
v-show="isMetamask" v-show="isMetamask"
class="button is-small is-background is-metamask" class="button is-small is-background is-metamask"
data-test="choose_metamask_option"
@click="_web3Connect('metamask')" @click="_web3Connect('metamask')"
> >
Metamask Metamask
</button> </button>
<button class="button is-small is-background is-walletConnect" @click="_web3Connect('walletConnect')"> <button
class="button is-small is-background is-walletConnect"
data-test="choose_wallet_option"
@click="_web3Connect('walletConnect')"
>
WalletConnect WalletConnect
</button> </button>
</div> </div>

View File

@ -1,10 +1,16 @@
<template> <template>
<b-tab-item :label="$t('withdraw')"> <b-tab-item :label="$t('withdraw')" header-class="button_tab_withdraw">
<div class="field"> <div class="field">
<div class="label-with-buttons"> <div class="label-with-buttons">
<div class="label"> <div class="label">
{{ $t('note') }} {{ $t('note') }}
<b-tooltip :label="$t('noteTooltip')" size="is-small" position="is-right" multilined> <b-tooltip
:label="$t('noteTooltip')"
size="is-small"
position="is-right"
multilined
data-test="enter_note_info"
>
<button class="button is-primary has-icon"> <button class="button is-primary has-icon">
<span class="icon icon-info"></span> <span class="icon icon-info"></span>
</button> </button>
@ -26,7 +32,12 @@
<LinkIcon /> <LinkIcon />
</b-tooltip> </b-tooltip>
</a> </a>
<button v-show="shouldSettingsShow" class="button is-icon" @click="onSettings"> <button
v-show="shouldSettingsShow"
class="button is-icon"
data-test="withdrawal_settings_button"
@click="onSettings"
>
<b-tooltip :label="$t('withdrawalSettings')" size="is-small" position="is-right" multilined> <b-tooltip :label="$t('withdrawalSettings')" size="is-small" position="is-right" multilined>
<SettingsIcon /> <SettingsIcon />
</b-tooltip> </b-tooltip>
@ -37,6 +48,7 @@
v-model="withdrawNote" v-model="withdrawNote"
:placeholder="$t('pleaseEnterYourNote')" :placeholder="$t('pleaseEnterYourNote')"
:custom-class="hasErrorNote ? hasErrorNote.type : 'is-primary'" :custom-class="hasErrorNote ? hasErrorNote.type : 'is-primary'"
data-test="enter_note_field"
></b-input> ></b-input>
<div v-if="hasErrorNote" class="help" :class="hasErrorNote.type"> <div v-if="hasErrorNote" class="help" :class="hasErrorNote.type">
<!-- eslint-disable vue/no-v-html --> <!-- eslint-disable vue/no-v-html -->
@ -46,7 +58,8 @@
<div v-if="!hasErrorNote && depositTxHash" class="field field-withdraw"> <div v-if="!hasErrorNote && depositTxHash" class="field field-withdraw">
<div class="withdraw-data"> <div class="withdraw-data">
<div class="withdraw-data-item"> <div class="withdraw-data-item">
{{ $t('amount') }} <span>{{ selectedAmount }} {{ selectedStatisticCurrency }}</span> {{ $t('amount') }}
<span data-test="note_tokens_amount">{{ selectedAmount }} {{ selectedStatisticCurrency }}</span>
</div> </div>
<div class="withdraw-data-item"> <div class="withdraw-data-item">
{{ $t('timePassed') }} {{ $t('timePassed') }}
@ -92,6 +105,7 @@
v-model="withdrawAddress" v-model="withdrawAddress"
:placeholder="$t('pleasePasteAddressHere')" :placeholder="$t('pleasePasteAddressHere')"
:size="!withdrawAddress ? '' : isValidAddress ? 'is-primary' : 'is-warning'" :size="!withdrawAddress ? '' : isValidAddress ? 'is-primary' : 'is-warning'"
data-test="recipient_address_field"
></b-input> ></b-input>
<p class="help"> <p class="help">
<span class="has-text-warning">{{ error.type }}</span> {{ error.message }} <span class="has-text-warning">{{ error.type }}</span> {{ error.message }}
@ -120,6 +134,7 @@
:disabled="isWithdrawalButtonDisable" :disabled="isWithdrawalButtonDisable"
:loading="isLoadingRelayers || isLoading" :loading="isLoadingRelayers || isLoading"
@click="onWithdraw" @click="onWithdraw"
data-test="button_start_withdraw"
> >
{{ $t('withdrawButton') }} {{ $t('withdrawButton') }}
</b-button> </b-button>

View File

@ -4,10 +4,10 @@
<div class="box-modal-title">{{ $t('withdrawalConfirmation') }}</div> <div class="box-modal-title">{{ $t('withdrawalConfirmation') }}</div>
<button type="button" class="delete" @click="$emit('close')" /> <button type="button" class="delete" @click="$emit('close')" />
</header> </header>
<div class="note"> <div class="note" data-test="withdrawal_confirmation_text">
{{ message }} {{ message }}
</div> </div>
<b-button type="is-primary is-fullwidth" @click="_sendWithdraw"> <b-button type="is-primary is-fullwidth" data-test="withdrawal_confirm_button" @click="_sendWithdraw">
{{ $t('confirm') }} {{ $t('confirm') }}
</b-button> </b-button>
</div> </div>
@ -57,7 +57,7 @@ export default {
deep: true deep: true
} }
}, },
mounted() { beforeCreate() {
this.$store.dispatch('loading/enable', { message: this.$t('generatingProof') }) this.$store.dispatch('loading/enable', { message: this.$t('generatingProof') })
}, },
methods: { methods: {

View File

@ -17,15 +17,15 @@
</div> </div>
<div v-if="withdrawType === 'relayer'" class="withdraw-data-item"> <div v-if="withdrawType === 'relayer'" class="withdraw-data-item">
{{ $t('networkFee') }} {{ $t('networkFee') }}
<span>{{ toDecimals(networkFee, null, 6) }} {{ networkCurrency }}</span> <span data-test="label_network_fee">{{ toDecimals(networkFee, null, 6) }} {{ networkCurrency }}</span>
</div> </div>
<div v-if="withdrawType === 'relayer'" class="withdraw-data-item"> <div v-if="withdrawType === 'relayer'" class="withdraw-data-item">
{{ $t('relayerFee') }} {{ $t('relayerFee') }}
<span>{{ toDecimals(relayerFee, null, 6) }} {{ currency }}</span> <span data-test="label_relayer_fee">{{ toDecimals(relayerFee, null, 6) }} {{ currency }}</span>
</div> </div>
<div v-if="withdrawType === 'relayer'" class="withdraw-data-item"> <div v-if="withdrawType === 'relayer'" class="withdraw-data-item">
{{ $t('totalFee') }} {{ $t('totalFee') }}
<span>{{ toDecimals(totalRelayerFee, null, 6) }} {{ currency }}</span> <span data-test="label_total_fee">{{ toDecimals(totalRelayerFee, null, 6) }} {{ currency }}</span>
</div> </div>
<div v-if="isTokenSelected" class="withdraw-data-item"> <div v-if="isTokenSelected" class="withdraw-data-item">
{{ $t('ethPurchase', { currency: networkCurrency }) }} {{ $t('ethPurchase', { currency: networkCurrency }) }}
@ -34,7 +34,7 @@
<hr v-if="withdrawType === 'relayer'" /> <hr v-if="withdrawType === 'relayer'" />
<div class="withdraw-data-item"> <div class="withdraw-data-item">
{{ $t('tokensToReceive') }} {{ $t('tokensToReceive') }}
<span>{{ total }} {{ currency }}</span> <span data-test="label_tokens_to_receive">{{ total }} {{ currency }}</span>
</div> </div>
<div v-if="isTokenSelected" class="withdraw-data-item"> <div v-if="isTokenSelected" class="withdraw-data-item">
<span class="is-alone">{{ ethToReceiveFromWei }} {{ networkCurrency }}</span> <span class="is-alone">{{ ethToReceiveFromWei }} {{ networkCurrency }}</span>

View File

@ -6,7 +6,13 @@
<div class="desc"> <div class="desc">
{{ $t(action.description) }} {{ $t(action.description) }}
</div> </div>
<b-button type="is-primary" outlined @mousedown.prevent @click="action.onClick"> <b-button
type="is-primary"
outlined
:data-test="action.dataAttribute"
@mousedown.prevent
@click="action.onClick"
>
{{ $t(action.button) }} {{ $t(action.button) }}
</b-button> </b-button>
</div> </div>
@ -15,9 +21,11 @@
<div class="desc"> <div class="desc">
{{ $t('account.control.fileDesc') }} {{ $t('account.control.fileDesc') }}
</div> </div>
<div data-test="download_notes__config_switch">
<b-switch :value="isEnabledSaveFile" size="is-medium" @input="handleEnabledSaveFile" /> <b-switch :value="isEnabledSaveFile" size="is-medium" @input="handleEnabledSaveFile" />
</div> </div>
</div> </div>
</div>
</template> </template>
<script> <script>
@ -36,19 +44,22 @@ export default {
icon: 'account-notes', icon: 'account-notes',
onClick: this.getEncryptedNotes, onClick: this.getEncryptedNotes,
button: 'account.control.loadAll', button: 'account.control.loadAll',
description: 'account.control.loadAllDesc' description: 'account.control.loadAllDesc',
dataAttribute: 'load_all_encrypted_notes_button'
}, },
{ {
icon: 'account-key', icon: 'account-key',
onClick: this.openRecoverKeyModal, onClick: this.openRecoverKeyModal,
button: 'account.control.showRecoveryKey', button: 'account.control.showRecoveryKey',
description: 'account.control.showRecoveryKeyDesc' description: 'account.control.showRecoveryKeyDesc',
dataAttribute: 'reveal_current_note_account'
}, },
{ {
icon: 'account-remove', icon: 'account-remove',
button: 'account.control.remove', button: 'account.control.remove',
onClick: this.handleRemoveAccount, onClick: this.handleRemoveAccount,
description: 'account.control.removeDesc' description: 'account.control.removeDesc',
dataAttribute: 'clear_account_info_button'
} }
] ]
} }

View File

@ -2,7 +2,7 @@
<div class="address"> <div class="address">
<div class="address-item"> <div class="address-item">
<div class="label">{{ $t('account.account') }}</div> <div class="label">{{ $t('account.account') }}</div>
<div class="value">{{ accounts.encrypt }}</div> <div class="value" data-test="note_account_address">{{ accounts.encrypt }}</div>
</div> </div>
<div class="address-item"> <div class="address-item">
<div class="label">{{ $t('account.backedUpWith') }}</div> <div class="label">{{ $t('account.backedUpWith') }}</div>

View File

@ -5,17 +5,31 @@
<div class="desc"> <div class="desc">
{{ isLoggedIn ? $t('account.wallet.disconnect') : $t('account.wallet.desc') }} {{ isLoggedIn ? $t('account.wallet.disconnect') : $t('account.wallet.desc') }}
</div> </div>
<b-button v-if="isLoggedIn" type="is-primary" outlined @mousedown.prevent @click="onLogOut"> <b-button
v-if="isLoggedIn"
type="is-primary"
outlined
data-test="button_disconnect_account"
@mousedown.prevent
@click="onLogOut"
>
{{ $t('account.wallet.logout') }} {{ $t('account.wallet.logout') }}
</b-button> </b-button>
<connect-button v-else outlined action-text="account.wallet.connectWeb3" /> <connect-button
v-else
outlined
action-text="account.wallet.connectWeb3"
data-test="button_connect_web3"
/>
</div> </div>
<div class="action-item"> <div class="action-item">
<b-icon icon="account-rpc" size="is-large" /> <b-icon icon="account-rpc" size="is-large" />
<div class="desc"> <div class="desc">
{{ $t('account.wallet.rpcDesc') }} {{ $t('account.wallet.rpcDesc') }}
</div> </div>
<b-button type="is-primary" outlined @click="onSettings">{{ $t('account.wallet.changeRpc') }}</b-button> <b-button type="is-primary" data-test="button_change_rpc" outlined @click="onSettings">{{
$t('account.wallet.changeRpc')
}}</b-button>
</div> </div>
</div> </div>
</template> </template>

View File

@ -6,9 +6,15 @@
{{ $t('account.setup.desc') }} {{ $t('account.setup.desc') }}
</div> </div>
<b-tooltip :active="isAccountDisabled" :label="$t(setupAccountTooltip)" multilined size="is-large"> <b-tooltip :active="isAccountDisabled" :label="$t(setupAccountTooltip)" multilined size="is-large">
<b-button :disabled="isAccountDisabled" outlined type="is-primary" @click="showSetupModal">{{ <b-button
$t('account.setup.account') :disabled="isAccountDisabled"
}}</b-button> outlined
type="is-primary"
data-test="button_setup_account"
@click="showSetupModal"
>
{{ $t('account.setup.account') }}
</b-button>
</b-tooltip> </b-tooltip>
</div> </div>
<div class="action-item"> <div class="action-item">
@ -17,7 +23,13 @@
{{ $t('account.setup.recoverDesc') }} {{ $t('account.setup.recoverDesc') }}
</div> </div>
<b-tooltip :active="isRecoverDisabled" :label="$t(recoverAccountTooltip)" multilined size="is-large"> <b-tooltip :active="isRecoverDisabled" :label="$t(recoverAccountTooltip)" multilined size="is-large">
<b-button type="is-primary" outlined :disabled="isRecoverDisabled" @click="handleRecoverAccount"> <b-button
type="is-primary"
outlined
:disabled="isRecoverDisabled"
data-test="button_recover_account"
@click="handleRecoverAccount"
>
{{ $t('account.setup.recover') }} {{ $t('account.setup.recover') }}
</b-button> </b-button>
</b-tooltip> </b-tooltip>
@ -27,9 +39,13 @@
<div class="desc"> <div class="desc">
{{ $t('account.setup.enterRawDesc') }} {{ $t('account.setup.enterRawDesc') }}
</div> </div>
<b-button type="is-primary" outlined @click="showRecoverKeyModal">{{ <b-button
$t('account.setup.enterRaw') type="is-primary"
}}</b-button> outlined
data-test="button_enter_account_key"
@click="showRecoverKeyModal"
>{{ $t('account.setup.enterRaw') }}</b-button
>
</div> </div>
</div> </div>
</template> </template>

View File

@ -2,7 +2,7 @@
<div class="address"> <div class="address">
<div class="address-item"> <div class="address-item">
<div class="label">{{ $t('account.account') }}</div> <div class="label">{{ $t('account.account') }}</div>
<div class="value">{{ accounts.backup }}</div> <div class="value" data-test="note_account_address">{{ accounts.backup }}</div>
</div> </div>
<div class="address-item"> <div class="address-item">
<div class="label">{{ $t('account.backedUpWith') }}</div> <div class="label">{{ $t('account.backedUpWith') }}</div>

View File

@ -22,10 +22,10 @@
</template> </template>
</div> </div>
<div class="buttons buttons__halfwidth mt-3"> <div class="buttons buttons__halfwidth mt-3">
<b-button type="is-primary" outlined @click="onClose"> <b-button type="is-primary" outlined data-test="button_close_your_note_popup" @click="onClose">
{{ $parent.$t('account.modals.decryptInfo.close') }} {{ $parent.$t('account.modals.decryptInfo.close') }}
</b-button> </b-button>
<b-button type="is-primary" @click="handleRedirect"> <b-button type="is-primary" data-test="button_main_page_your_notes_popup" @click="handleRedirect">
{{ $parent.$t('account.modals.decryptInfo.redirect') }} {{ $parent.$t('account.modals.decryptInfo.redirect') }}
</b-button> </b-button>
</div> </div>

View File

@ -14,6 +14,7 @@
class="is-disabled-resize" class="is-disabled-resize"
rows="2" rows="2"
:placeholder="$t('enterRecoveryKey')" :placeholder="$t('enterRecoveryKey')"
data-test="input_enter_recovery_key"
:class="{ 'is-warning': hasAndValidKey }" :class="{ 'is-warning': hasAndValidKey }"
@input="onInput" @input="onInput"
></b-input> ></b-input>
@ -33,6 +34,7 @@
type="is-primary is-fullwidth" type="is-primary is-fullwidth"
:disabled="hasAndValidKey" :disabled="hasAndValidKey"
:loading="recoverAccountFromKeyRequest.isFetching" :loading="recoverAccountFromKeyRequest.isFetching"
data-test="button_connect_recovery_key"
@click="handleRecoverAccount" @click="handleRecoverAccount"
> >
{{ $t('account.modals.recoverAccount.connect') }} {{ $t('account.modals.recoverAccount.connect') }}

View File

@ -44,6 +44,7 @@
<b-button <b-button
v-if="!isBackuped && isSaveOnChain" v-if="!isBackuped && isSaveOnChain"
type="is-primary is-fullwidth" type="is-primary is-fullwidth"
data-test="button_confirm_setup_account"
:loading="setupAccountRequest.isFetching" :loading="setupAccountRequest.isFetching"
@click="onSetupAccount" @click="onSetupAccount"
> >

View File

@ -361,8 +361,8 @@ export default {
echoContractAccount: '0xa75BF2815618872f155b7C4B0C81bF990f5245E4', echoContractAccount: '0xa75BF2815618872f155b7C4B0C81bF990f5245E4',
rpcUrls: { rpcUrls: {
publicRpc: { publicRpc: {
name: 'xDAI Chain RPC', name: 'Gnosis Chain RPC',
url: 'https://rpc.xdaichain.com/tornado' url: 'https://rpc.gnosischain.com/tornado'
} }
}, },
tokens: { tokens: {

View File

@ -24,7 +24,7 @@
"@metamask/onboarding": "^1.0.0", "@metamask/onboarding": "^1.0.0",
"@nuxtjs/moment": "^1.6.0", "@nuxtjs/moment": "^1.6.0",
"@ticket721/e712": "^0.4.1", "@ticket721/e712": "^0.4.1",
"@walletconnect/web3-provider": "1.7.7", "@walletconnect/web3-provider": "1.7.8",
"ajv": "^6.10.2", "ajv": "^6.10.2",
"arraybuffer-loader": "^1.0.8", "arraybuffer-loader": "^1.0.8",
"base-path-converter": "^1.0.2", "base-path-converter": "^1.0.2",

View File

@ -13,6 +13,7 @@
<div class="label">{{ $t('note') }}</div> <div class="label">{{ $t('note') }}</div>
<b-input <b-input
v-model="withdrawNote" v-model="withdrawNote"
data-test="input_enter_note_for_compliance"
:placeholder="$t('pleaseEnterYourNote')" :placeholder="$t('pleaseEnterYourNote')"
:custom-class="error ? error.type : 'is-primary'" :custom-class="error ? error.type : 'is-primary'"
></b-input> ></b-input>
@ -44,6 +45,7 @@
</h3> </h3>
<div <div
class="block-item block-item--status" class="block-item block-item--status"
data-test="note_status_info"
:class="{ :class="{
'is-success': txDepositInfo.txHash 'is-success': txDepositInfo.txHash
}" }"
@ -120,6 +122,7 @@
</h3> </h3>
<div <div
class="block-item block-item--status" class="block-item block-item--status"
data-test="info_withdrawal_status"
:class="{ :class="{
'is-warning': !txDepositInfo.isSpent, 'is-warning': !txDepositInfo.isSpent,
'is-success': txWithdrawalInfo.txHash 'is-success': txWithdrawalInfo.txHash

View File

@ -553,7 +553,7 @@ const actions = {
}, },
100: { 100: {
chainId: '0x64', chainId: '0x64',
chainName: 'Gnosis Chain (formerly xDai)', chainName: 'Gnosis',
rpcUrls: ['https://rpc.gnosischain.com'], rpcUrls: ['https://rpc.gnosischain.com'],
nativeCurrency: { nativeCurrency: {
name: 'xDAI', name: 'xDAI',

126
yarn.lock
View File

@ -2494,35 +2494,35 @@
dom-event-types "^1.0.0" dom-event-types "^1.0.0"
lodash "^4.17.4" lodash "^4.17.4"
"@walletconnect/browser-utils@^1.7.7": "@walletconnect/browser-utils@^1.7.8":
version "1.7.7" version "1.7.8"
resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.7.7.tgz#4ae0db1ddf49be179ea556af842db3b7afce973d" resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.7.8.tgz#c9e27f69d838442d69ccf53cb38ffc3c554baee2"
integrity sha512-6Mt7DSPaG0FKnHhuVzkU1hgtsCpGvl2nfbfRytLpyDY05iWMzMg5uK1DzV+0k4hCt9pVli0JVNt6dh9a6Xm94w== integrity sha512-iCL0XCWOZaABIc0lqA79Vyaybr3z26nt8mxiwvfrG8oaKUf5Y21Of4dj+wIXQ4Hhblre6SgDlU0Ffb39+1THOw==
dependencies: dependencies:
"@walletconnect/safe-json" "1.0.0" "@walletconnect/safe-json" "1.0.0"
"@walletconnect/types" "^1.7.7" "@walletconnect/types" "^1.7.8"
"@walletconnect/window-getters" "1.0.0" "@walletconnect/window-getters" "1.0.0"
"@walletconnect/window-metadata" "1.0.0" "@walletconnect/window-metadata" "1.0.0"
detect-browser "5.2.0" detect-browser "5.2.0"
"@walletconnect/client@^1.7.7": "@walletconnect/client@^1.7.8":
version "1.7.7" version "1.7.8"
resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.7.7.tgz#4570475b0aeed05e53b0c7b01a352a895c0b455b" resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.7.8.tgz#62c2d7114e59495d90772ea8033831ceb29c6a78"
integrity sha512-UuDkpXDc1Emx09aGXKz2Fg8omNp5J8ZRgNblnQTb8xnoQ8rgOJSyhbFR37PFIFwVpriZZDAgmy8HlqoGwLQ2ug== integrity sha512-pBroM6jZAaUM0SoXJZg5U7aPTiU3ljQAw3Xh/i2pxFDeN/oPKao7husZ5rdxS5xuGSV6YpqqRb0RxW1IeoR2Pg==
dependencies: dependencies:
"@walletconnect/core" "^1.7.7" "@walletconnect/core" "^1.7.8"
"@walletconnect/iso-crypto" "^1.7.7" "@walletconnect/iso-crypto" "^1.7.8"
"@walletconnect/types" "^1.7.7" "@walletconnect/types" "^1.7.8"
"@walletconnect/utils" "^1.7.7" "@walletconnect/utils" "^1.7.8"
"@walletconnect/core@^1.7.7": "@walletconnect/core@^1.7.8":
version "1.7.7" version "1.7.8"
resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.7.7.tgz#71d0c71beda8d10c636a4eae8e81e3b7ecefbe86" resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.7.8.tgz#97c52ea7d00126863cd37bf19bd3e87d4f30de1e"
integrity sha512-XsF2x4JcBS1V2Nk/Uh38dU7ZlLmW/R5oxHp4+tVgCwTID6nZlo3vUSHBOqM7jgDRblKOHixANollm0r94bM8Cg== integrity sha512-9xcQ0YNf9JUFb0YOX1Mpy4Yojt+6w2yQz/0aIEyj2X/s9D71NW0fTYsMcdhkLOI7mn2cqVbx2t1lRvdgqsbrSQ==
dependencies: dependencies:
"@walletconnect/socket-transport" "^1.7.7" "@walletconnect/socket-transport" "^1.7.8"
"@walletconnect/types" "^1.7.7" "@walletconnect/types" "^1.7.8"
"@walletconnect/utils" "^1.7.7" "@walletconnect/utils" "^1.7.8"
"@walletconnect/crypto@^1.0.2": "@walletconnect/crypto@^1.0.2":
version "1.0.2" version "1.0.2"
@ -2548,24 +2548,24 @@
resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.0.tgz#c4545869fa9c389ec88c364e1a5f8178e8ab5034" resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.0.tgz#c4545869fa9c389ec88c364e1a5f8178e8ab5034"
integrity sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ== integrity sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ==
"@walletconnect/http-connection@^1.7.7": "@walletconnect/http-connection@^1.7.8":
version "1.7.7" version "1.7.8"
resolved "https://registry.yarnpkg.com/@walletconnect/http-connection/-/http-connection-1.7.7.tgz#77bcce7c4c067e1e745da1a1c6174ff0daa76018" resolved "https://registry.yarnpkg.com/@walletconnect/http-connection/-/http-connection-1.7.8.tgz#98bcc726c29751ddc791ff151742aa712bf679a7"
integrity sha512-MmhVJfBjvjYcZnrJYnDx4VBwpYM6yh7eX4/8szo6sGwzG4E+8V4YBKU2NF6fA6YXpdAyEYayElqXhB0YBEZFJA== integrity sha512-31gjBw46MRU9hFMTNXAqh+f8qpDNzVeV9BJehzVWKiNC3ciL1JCZkbvsY0djwajduE6TB2ujaML0XDXS9HgBRA==
dependencies: dependencies:
"@walletconnect/types" "^1.7.7" "@walletconnect/types" "^1.7.8"
"@walletconnect/utils" "^1.7.7" "@walletconnect/utils" "^1.7.8"
eventemitter3 "4.0.7" eventemitter3 "4.0.7"
xhr2-cookies "1.1.0" xhr2-cookies "1.1.0"
"@walletconnect/iso-crypto@^1.7.7": "@walletconnect/iso-crypto@^1.7.8":
version "1.7.7" version "1.7.8"
resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.7.7.tgz#a7f703f9c2a05aafe5b8cced8941c7732701e579" resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.7.8.tgz#41f09326d129faa09beae213e78614c19d90bbd6"
integrity sha512-t8RKJZkFtFyWMFrl0jPz/3RAGhM5yext+MLFq3L/KTPxLgMZuT1yFHRUiV7cAN3+LcCmk6Sy/rV1yQPTiB158Q== integrity sha512-Qo6qDcMG0Ac+9fpWE0h/oE55NHLk6eM2vlXpWlQDN/me7RZGrkvk+LXsAkQ3UiYPEiPfq4eswcyRWC9AcrAscg==
dependencies: dependencies:
"@walletconnect/crypto" "^1.0.2" "@walletconnect/crypto" "^1.0.2"
"@walletconnect/types" "^1.7.7" "@walletconnect/types" "^1.7.8"
"@walletconnect/utils" "^1.7.7" "@walletconnect/utils" "^1.7.8"
"@walletconnect/jsonrpc-types@^1.0.0": "@walletconnect/jsonrpc-types@^1.0.0":
version "1.0.0" version "1.0.0"
@ -2587,14 +2587,14 @@
resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz#502cf8ab87330841d794819081e748ebdef7aee5" resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz#502cf8ab87330841d794819081e748ebdef7aee5"
integrity sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw== integrity sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw==
"@walletconnect/qrcode-modal@^1.7.7": "@walletconnect/qrcode-modal@^1.7.8":
version "1.7.7" version "1.7.8"
resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.7.7.tgz#a7567370bf915a50fb8edc99f6ceb70ce9be2bfc" resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.7.8.tgz#52b3d15922f3e371ddc92fd0f49f93ff40241365"
integrity sha512-HRzw6g4P8/C4ClJYJShaGfdvjfrTfkXv+eb+IylWGWvC8IQhuiSXCq5+F3t0CXxuZs3ir26abgviEMRFQxGKdA== integrity sha512-LqNJMLWO+ljvoRSdq8tcEslW0imKrrb+ugs3bw4w/jEI1FSJzVeinEsgVpyaMv8wsUcyTcSCXSkXpT1SXHtcpw==
dependencies: dependencies:
"@walletconnect/browser-utils" "^1.7.7" "@walletconnect/browser-utils" "^1.7.8"
"@walletconnect/mobile-registry" "^1.4.0" "@walletconnect/mobile-registry" "^1.4.0"
"@walletconnect/types" "^1.7.7" "@walletconnect/types" "^1.7.8"
copy-to-clipboard "^3.3.1" copy-to-clipboard "^3.3.1"
preact "10.4.1" preact "10.4.1"
qrcode "1.4.4" qrcode "1.4.4"
@ -2613,43 +2613,43 @@
resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2" resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2"
integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg==
"@walletconnect/socket-transport@^1.7.7": "@walletconnect/socket-transport@^1.7.8":
version "1.7.7" version "1.7.8"
resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.7.7.tgz#2cf68b95c4c10f257189370d2456d99c9c206a0f" resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.7.8.tgz#a4ef50d8054293991dbfde7f9c66788030182ec3"
integrity sha512-RxeFkT+5BqdaZzPtPYIw6+KSVh6Q1NaYqTiAzWWh9RPuvuTajIEsi+fUXizfkpmyi9UTYBvdFXnKcB+eSImpDg== integrity sha512-bqEjLxfSzG79v2OT7XVOZoyUkg6g3yng0fURrdLusWs42fYHWnrSrIZDejFn8N5PiZk5R2edrggkQ7w0VUUAfw==
dependencies: dependencies:
"@walletconnect/types" "^1.7.7" "@walletconnect/types" "^1.7.8"
"@walletconnect/utils" "^1.7.7" "@walletconnect/utils" "^1.7.8"
ws "7.5.3" ws "7.5.3"
"@walletconnect/types@^1.7.7": "@walletconnect/types@^1.7.8":
version "1.7.7" version "1.7.8"
resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.7.7.tgz#71c623b36a93e373370b1772e82fea2d801adf54" resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.7.8.tgz#ec397e6fbdc8147bccc17029edfeb41c50a5ca09"
integrity sha512-yXJrLxwLLCXtWgd/e8FjfY9v5DKds12Z7EEPzUrPSq6v7WtXpqate577KwlFQ6UYzioQzIEDE8+98j+0aiZbsw== integrity sha512-0oSZhKIrtXRJVP1jQ0EDTRtotQY6kggGjDcmm/LLQBKnOZXdPeo0sPkV/7DjT5plT3O7Cjc6JvuXt9WOY0hlCA==
"@walletconnect/utils@^1.7.7": "@walletconnect/utils@^1.7.8":
version "1.7.7" version "1.7.8"
resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.7.7.tgz#684522fa20ccf9ec2944f0497ca70254cb6d4729" resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.7.8.tgz#f94572bca5eb6b5f81daf8a35268f249f9c6b1ec"
integrity sha512-slNlnROS4DEusGFx53hshIBylYhzd5JtGF+AJpza+Tc616+u8ozjQ9aKKUaV85bucnv5Q42bTwLYrYrXiydmuw== integrity sha512-DSpfH6Do0TQmdrgzu+SyjVhupVjN0WEMvNWGK9K4VlSmLFpCWfme7qxzrvuxBZ47gDqs1kGWvjyJmviWqvOnAg==
dependencies: dependencies:
"@walletconnect/browser-utils" "^1.7.7" "@walletconnect/browser-utils" "^1.7.8"
"@walletconnect/encoding" "^1.0.1" "@walletconnect/encoding" "^1.0.1"
"@walletconnect/jsonrpc-utils" "^1.0.0" "@walletconnect/jsonrpc-utils" "^1.0.0"
"@walletconnect/types" "^1.7.7" "@walletconnect/types" "^1.7.8"
bn.js "4.11.8" bn.js "4.11.8"
js-sha3 "0.8.0" js-sha3 "0.8.0"
query-string "6.13.5" query-string "6.13.5"
"@walletconnect/web3-provider@1.7.7": "@walletconnect/web3-provider@1.7.8":
version "1.7.7" version "1.7.8"
resolved "https://registry.yarnpkg.com/@walletconnect/web3-provider/-/web3-provider-1.7.7.tgz#3d2f8d7a0fcdc118615283978c6a7c9f2a852b71" resolved "https://registry.yarnpkg.com/@walletconnect/web3-provider/-/web3-provider-1.7.8.tgz#fe9b66a4010ee831db664a3fe5014d67a758a1fc"
integrity sha512-hUhDyaMu93e7e82OVCu3KnYOn6m6wQO9YObbhi3PexppCANe/Y9eDrw/37S+7jbjLIx5nS1et2JU+taKR7OSOw== integrity sha512-2VxGo7KPfQTWRJ+rygt3ok/u04InkVE+H9LBIF/RMUwcwyGf2nsP3CcYZVcg3yYpacgN7bAZCersCEYwU8AeeA==
dependencies: dependencies:
"@walletconnect/client" "^1.7.7" "@walletconnect/client" "^1.7.8"
"@walletconnect/http-connection" "^1.7.7" "@walletconnect/http-connection" "^1.7.8"
"@walletconnect/qrcode-modal" "^1.7.7" "@walletconnect/qrcode-modal" "^1.7.8"
"@walletconnect/types" "^1.7.7" "@walletconnect/types" "^1.7.8"
"@walletconnect/utils" "^1.7.7" "@walletconnect/utils" "^1.7.8"
web3-provider-engine "16.0.1" web3-provider-engine "16.0.1"
"@walletconnect/window-getters@1.0.0", "@walletconnect/window-getters@^1.0.0": "@walletconnect/window-getters@1.0.0", "@walletconnect/window-getters@^1.0.0":