Compare commits

...

50 Commits

Author SHA1 Message Date
e218b22e86 link updated
Some checks failed
Node.js CI / cleanup (push) Has been cancelled
Node.js CI / build (push) Has been cancelled
Node.js CI / deploy-minified (push) Has been cancelled
Node.js CI / deploy-docker (push) Has been cancelled
Node.js CI / deploy-ipfs (push) Has been cancelled
Node.js CI / notify (push) Has been cancelled
2024-08-18 04:30:39 +03:00
25c2fd15d2 sepolia contract update
Some checks are pending
Node.js CI / cleanup (push) Waiting to run
Node.js CI / build (push) Waiting to run
Node.js CI / deploy-minified (push) Blocked by required conditions
Node.js CI / deploy-docker (push) Blocked by required conditions
Node.js CI / deploy-ipfs (push) Blocked by required conditions
Node.js CI / notify (push) Blocked by required conditions
2024-08-17 07:38:52 +03:00
b946a091fa sepolia contract update
Some checks are pending
Node.js CI / cleanup (push) Waiting to run
Node.js CI / build (push) Waiting to run
Node.js CI / deploy-minified (push) Blocked by required conditions
Node.js CI / deploy-docker (push) Blocked by required conditions
Node.js CI / deploy-ipfs (push) Blocked by required conditions
Node.js CI / notify (push) Blocked by required conditions
2024-08-17 07:37:12 +03:00
400263107f fix links
Some checks are pending
Node.js CI / cleanup (push) Waiting to run
Node.js CI / build (push) Waiting to run
Node.js CI / deploy-minified (push) Blocked by required conditions
Node.js CI / deploy-docker (push) Blocked by required conditions
Node.js CI / deploy-ipfs (push) Blocked by required conditions
Node.js CI / notify (push) Blocked by required conditions
2024-08-17 06:37:51 +03:00
3428e839ed Merge pull request 'development' (#2) from development into master
Some checks are pending
Node.js CI / cleanup (push) Waiting to run
Node.js CI / build (push) Waiting to run
Node.js CI / deploy-minified (push) Blocked by required conditions
Node.js CI / deploy-docker (push) Blocked by required conditions
Node.js CI / deploy-ipfs (push) Blocked by required conditions
Node.js CI / notify (push) Blocked by required conditions
Reviewed-on: #2
2024-08-17 06:37:06 +03:00
32fc9e9bb8 updated footer temp for merge
Some checks are pending
Node.js CI / cleanup (push) Waiting to run
Node.js CI / build (push) Waiting to run
Node.js CI / deploy-minified (push) Blocked by required conditions
Node.js CI / deploy-docker (push) Blocked by required conditions
Node.js CI / deploy-ipfs (push) Blocked by required conditions
Node.js CI / notify (push) Blocked by required conditions
2024-08-17 06:35:41 +03:00
a9998d3a34 added telegram link in footer
Some checks are pending
Node.js CI / cleanup (push) Waiting to run
Node.js CI / build (push) Waiting to run
Node.js CI / deploy-minified (push) Blocked by required conditions
Node.js CI / deploy-docker (push) Blocked by required conditions
Node.js CI / deploy-ipfs (push) Blocked by required conditions
Node.js CI / notify (push) Blocked by required conditions
2024-08-17 06:34:30 +03:00
4a1ece4a12 tornadorpc added properly and little fix for chainnodes rpc
Some checks are pending
Node.js CI / cleanup (push) Waiting to run
Node.js CI / build (push) Waiting to run
Node.js CI / deploy-minified (push) Blocked by required conditions
Node.js CI / deploy-docker (push) Blocked by required conditions
Node.js CI / deploy-ipfs (push) Blocked by required conditions
Node.js CI / notify (push) Blocked by required conditions
2024-08-17 06:32:13 +03:00
638a084011 updated donations address, rpc
Some checks failed
Node.js CI / cleanup (push) Has been cancelled
Node.js CI / build (push) Has been cancelled
Node.js CI / deploy-minified (push) Has been cancelled
Node.js CI / deploy-docker (push) Has been cancelled
Node.js CI / deploy-ipfs (push) Has been cancelled
Node.js CI / notify (push) Has been cancelled
2024-08-05 06:01:04 -04:00
5ad7a7acb4 updated info / landing page link, rpc fix
Some checks failed
Node.js CI / cleanup (push) Has been cancelled
Node.js CI / build (push) Has been cancelled
Node.js CI / deploy-minified (push) Has been cancelled
Node.js CI / deploy-docker (push) Has been cancelled
Node.js CI / deploy-ipfs (push) Has been cancelled
Node.js CI / notify (push) Has been cancelled
2024-07-29 20:31:37 -04:00
b4526cb4d6 fixed error
Some checks are pending
Node.js CI / cleanup (push) Waiting to run
Node.js CI / build (push) Waiting to run
Node.js CI / deploy-minified (push) Blocked by required conditions
Node.js CI / deploy-docker (push) Blocked by required conditions
Node.js CI / deploy-ipfs (push) Blocked by required conditions
Node.js CI / notify (push) Blocked by required conditions
2024-07-29 17:02:56 -04:00
848217571f updated yarn.lock metadata properly
Some checks are pending
Node.js CI / cleanup (push) Waiting to run
Node.js CI / build (push) Waiting to run
Node.js CI / deploy-minified (push) Blocked by required conditions
Node.js CI / deploy-docker (push) Blocked by required conditions
Node.js CI / deploy-ipfs (push) Blocked by required conditions
Node.js CI / notify (push) Blocked by required conditions
2024-07-29 16:46:11 -04:00
2e255b1e86 updated npm link, landing / info page links to new one link
Some checks are pending
Node.js CI / cleanup (push) Waiting to run
Node.js CI / build (push) Waiting to run
Node.js CI / deploy-minified (push) Blocked by required conditions
Node.js CI / deploy-docker (push) Blocked by required conditions
Node.js CI / deploy-ipfs (push) Blocked by required conditions
Node.js CI / notify (push) Blocked by required conditions
2024-07-28 18:42:16 -04:00
d9f070fefa updated compliance links to proper one
Some checks are pending
Node.js CI / cleanup (push) Waiting to run
Node.js CI / build (push) Waiting to run
Node.js CI / deploy-minified (push) Blocked by required conditions
Node.js CI / deploy-docker (push) Blocked by required conditions
Node.js CI / deploy-ipfs (push) Blocked by required conditions
Node.js CI / notify (push) Blocked by required conditions
2024-07-28 18:05:18 -04:00
835bcfbb8c updated link
Some checks are pending
Node.js CI / cleanup (push) Waiting to run
Node.js CI / build (push) Waiting to run
Node.js CI / deploy-minified (push) Blocked by required conditions
Node.js CI / deploy-docker (push) Blocked by required conditions
Node.js CI / deploy-ipfs (push) Blocked by required conditions
Node.js CI / notify (push) Blocked by required conditions
2024-07-28 17:57:31 -04:00
Theo
57d3ba5ac5 Merge pull request 'Move latest node.js flags to :lts command' (#34) from tornadocontrib/classic-ui:light-3 into development
Reviewed-on: https://git.tornado.ws/tornadocash/classic-ui/pulls/34
2024-05-06 20:22:01 +03:00
Tornado Contrib
2fcf0cb443
Remove goerli testnet and comment out frozen instances 2024-05-06 16:05:16 +00:00
Tornado Contrib
1221aad973
Added script to patch old vuex package 2024-05-06 15:55:57 +00:00
Tornado Contrib
bf3d37dad6
Move latest node.js flags to :lts command 2024-05-06 15:32:41 +00:00
Theo
5de0210127 Merge pull request 'Minor fix for Windows Build and add Sepolia Testnet' (#33) from tornadocontrib/classic-ui:light-2 into development
Reviewed-on: https://git.tornado.ws/tornadocash/classic-ui/pulls/33
2024-05-06 18:10:50 +03:00
Tornado Contrib
63e770cf12
Replace thegraph endpoint to ours 2024-05-06 08:12:42 +00:00
Tornado Contrib
340d32b2ad
Added sepolia testnet 2024-05-06 08:12:42 +00:00
Tornado Contrib
aaa4205145
Added Telegram link 2024-05-06 08:12:42 +00:00
Tornado Contrib
ca946343d2
Fixed windows build with latest node.js lts 2024-05-06 08:12:42 +00:00
780ccdc44c Add self-hosted RPC endpoints for some chains 2024-05-05 10:46:58 -07:00
Theo
5ebf55204d Merge pull request 'Use subgraph to fetch deposit events and registry events' (#31) from tornadocontrib/classic-ui:light into development
Reviewed-on: https://git.tornado.ws/tornadocash/classic-ui/pulls/31
2024-05-05 20:24:24 +03:00
Tornado Contrib
2cf3b33b62
Use subgraph to fetch deposit events and registry events 2024-05-05 12:31:55 +00:00
ButterflyEffect
b288ce9356 Merge pull request 'master' (#30) from master into development
Reviewed-on: https://git.tornado.ws/tornadocash/classic-ui/pulls/30
2024-01-11 12:51:35 +01:00
Theo
9e1a3c16d2 Merge pull request 'proposal 44' (#29) from ButterflyEffect/classic-ui:development into master
Reviewed-on: https://git.tornado.ws/tornadocash/classic-ui/pulls/29
2024-01-02 23:13:15 +01:00
ButterflyEffect
d0cee4aa9a allow wallet withdrawal if no relayers 2023-12-25 13:16:32 +00:00
ButterflyEffect
820a651615 change quorum (proposal 41) 2023-12-19 17:39:47 +00:00
ButterflyEffect
d9d32f54a5 add fallback avax rpc 2023-12-19 17:15:46 +00:00
ButterflyEffect
5b643d2848 add fallback goerli rpc 2023-12-19 12:19:53 +00:00
ButterflyEffect
e5bf96f896 replace censored llamarpc 2023-12-19 12:18:15 +00:00
ButterflyEffect
1494315784 force withdrawal via relayer 2023-12-04 15:59:17 +00:00
ButterflyEffect
91889af448 update cache 2023-12-04 15:09:44 +00:00
ButterflyEffect
558b6fcd0c fix update script 2023-12-04 15:09:30 +00:00
b4e23e96b4 Update self-hosted tornado packages 2023-09-18 23:16:52 -07:00
023c4634c3 Update tornado-oracles dependency to fix BSC gas price underestimate problem 2023-08-30 08:33:06 -07:00
e8a7fec326 Allow only new relayer software version for mainnet: 4.1.5 and higher 2023-08-30 03:33:44 -07:00
500d2bd0a4 Fix proof calculation for self-withdrawal: specify relayer only when recalculating proof for relayer 2023-08-30 03:32:45 -07:00
334412c803 Fix gas limit estimation for metamask & bump gas limit for self-withdrawal without relayer to 20% 2023-08-30 03:28:05 -07:00
6137e1328a Calculate gas for deposit & withdrawal transactions via fee oracle instead of web3 naive methods 2023-08-28 13:19:01 -07:00
879c8549e6 Update tornado-oracles package to fix gas price issues for sidechains & specify explicit node version in .nvmrc 2023-08-28 04:19:45 -07:00
d10ea812db Fix saving bloom to IDB for sidechains & clarify logs for encrypted notes account loading 2023-08-28 02:54:44 -07:00
9210330208 Change gas & fees calculations:
- Use @tornado/tornado-oracles lib to calculate withdrawal fee via relayer
	- When calculating fee, save backwards compatibility for Ethereum Mainnet V4 relayers & old UI builds
	- Bump UI version to 1.2.0
	- Display most up-to-date information about relayer withdrawal fees on WithdrawalTotal page
2023-08-27 12:30:31 -07:00
fb0a5131f4 Update events & trees 2023-08-27 12:29:42 -07:00
d16449bcf8 Rename 'gasPrices' scope to 'fees', and use it to estimate all network withdrawal fee 2023-08-22 09:23:18 -07:00
d9ae37ebb2 Change relayer version validating to save backwards compatibility with on Ethereum Mainnet with old Tornado versions 2023-08-22 09:01:54 -07:00
7db929cc8c Make token price api faster & easier via lib @tornado/tornado-oracles 2023-08-21 10:22:17 -07:00
251 changed files with 883 additions and 897 deletions

5
.gitignore vendored
View File

@ -88,5 +88,8 @@ sw.*
# Mac OSX
.DS_Store
# Events unarchived files
static/*/*.json
# UI build archive
dist.zip

2
.npmrc
View File

@ -1 +1 @@
@tornado:registry=https://git.tornado.ws/api/packages/tornado-packages/npm/
@tornado:registry=https://git.tornado.is/api/packages/tornado-packages/npm/

2
.nvmrc
View File

@ -1 +1 @@
14
v14.21.3

View File

@ -4,7 +4,7 @@
## Building locally
- Install [Node.js](https://nodejs.org) version 14
- Install [Node.js](https://nodejs.org) version 16
- If you are using [nvm](https://github.com/creationix/nvm#installation) (recommended) running `nvm use` will automatically choose the right node version for you.
- Install [Yarn](https://yarnpkg.com/en/docs/install)
- Install dependencies: `yarn`

View File

@ -1,181 +0,0 @@
[
{
"inputs": [
{ "internalType": "contract MultiWrapper", "name": "_multiWrapper", "type": "address" },
{ "internalType": "contract IOracle[]", "name": "existingOracles", "type": "address[]" },
{ "internalType": "enum OffchainOracle.OracleType[]", "name": "oracleTypes", "type": "uint8[]" },
{ "internalType": "contract IERC20[]", "name": "existingConnectors", "type": "address[]" },
{ "internalType": "contract IERC20", "name": "wBase", "type": "address" }
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{ "indexed": false, "internalType": "contract IERC20", "name": "connector", "type": "address" }
],
"name": "ConnectorAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{ "indexed": false, "internalType": "contract IERC20", "name": "connector", "type": "address" }
],
"name": "ConnectorRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{ "indexed": false, "internalType": "contract MultiWrapper", "name": "multiWrapper", "type": "address" }
],
"name": "MultiWrapperUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{ "indexed": false, "internalType": "contract IOracle", "name": "oracle", "type": "address" },
{
"indexed": false,
"internalType": "enum OffchainOracle.OracleType",
"name": "oracleType",
"type": "uint8"
}
],
"name": "OracleAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{ "indexed": false, "internalType": "contract IOracle", "name": "oracle", "type": "address" },
{
"indexed": false,
"internalType": "enum OffchainOracle.OracleType",
"name": "oracleType",
"type": "uint8"
}
],
"name": "OracleRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{ "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" },
{ "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" }
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [{ "internalType": "contract IERC20", "name": "connector", "type": "address" }],
"name": "addConnector",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{ "internalType": "contract IOracle", "name": "oracle", "type": "address" },
{ "internalType": "enum OffchainOracle.OracleType", "name": "oracleKind", "type": "uint8" }
],
"name": "addOracle",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "connectors",
"outputs": [{ "internalType": "contract IERC20[]", "name": "allConnectors", "type": "address[]" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{ "internalType": "contract IERC20", "name": "srcToken", "type": "address" },
{ "internalType": "contract IERC20", "name": "dstToken", "type": "address" },
{ "internalType": "bool", "name": "useWrappers", "type": "bool" }
],
"name": "getRate",
"outputs": [{ "internalType": "uint256", "name": "weightedRate", "type": "uint256" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{ "internalType": "contract IERC20", "name": "srcToken", "type": "address" },
{ "internalType": "bool", "name": "useSrcWrappers", "type": "bool" }
],
"name": "getRateToEth",
"outputs": [{ "internalType": "uint256", "name": "weightedRate", "type": "uint256" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "multiWrapper",
"outputs": [{ "internalType": "contract MultiWrapper", "name": "", "type": "address" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "oracles",
"outputs": [
{ "internalType": "contract IOracle[]", "name": "allOracles", "type": "address[]" },
{ "internalType": "enum OffchainOracle.OracleType[]", "name": "oracleTypes", "type": "uint8[]" }
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [{ "internalType": "contract IERC20", "name": "connector", "type": "address" }],
"name": "removeConnector",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{ "internalType": "contract IOracle", "name": "oracle", "type": "address" },
{ "internalType": "enum OffchainOracle.OracleType", "name": "oracleKind", "type": "uint8" }
],
"name": "removeOracle",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [{ "internalType": "contract MultiWrapper", "name": "_multiWrapper", "type": "address" }],
"name": "setMultiWrapper",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [{ "internalType": "address", "name": "newOwner", "type": "address" }],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]

View File

@ -1,151 +0,0 @@
[
{
"inputs": [{ "internalType": "address", "name": "_owner", "type": "address" }],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [{ "indexed": false, "internalType": "uint256", "name": "", "type": "uint256" }],
"name": "DecimalsUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [{ "indexed": false, "internalType": "uint256", "name": "", "type": "uint256" }],
"name": "GasPriceUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [{ "indexed": false, "internalType": "uint256", "name": "", "type": "uint256" }],
"name": "L1BaseFeeUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [{ "indexed": false, "internalType": "uint256", "name": "", "type": "uint256" }],
"name": "OverheadUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{ "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" },
{ "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" }
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [{ "indexed": false, "internalType": "uint256", "name": "", "type": "uint256" }],
"name": "ScalarUpdated",
"type": "event"
},
{
"inputs": [],
"name": "decimals",
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "gasPrice",
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [{ "internalType": "bytes", "name": "_data", "type": "bytes" }],
"name": "getL1Fee",
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [{ "internalType": "bytes", "name": "_data", "type": "bytes" }],
"name": "getL1GasUsed",
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "l1BaseFee",
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "overhead",
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "scalar",
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [{ "internalType": "uint256", "name": "_decimals", "type": "uint256" }],
"name": "setDecimals",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [{ "internalType": "uint256", "name": "_gasPrice", "type": "uint256" }],
"name": "setGasPrice",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [{ "internalType": "uint256", "name": "_baseFee", "type": "uint256" }],
"name": "setL1BaseFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [{ "internalType": "uint256", "name": "_overhead", "type": "uint256" }],
"name": "setOverhead",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [{ "internalType": "uint256", "name": "_scalar", "type": "uint256" }],
"name": "setScalar",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [{ "internalType": "address", "name": "newOwner", "type": "address" }],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]

View File

@ -317,8 +317,8 @@
mask-image: url('../img/icons/ethereum.svg');
}
&-ethereum-goerli {
mask-image: url('../img/icons/goerli.svg');
&-ethereum-sepolia {
mask-image: url('../img/icons/ethereum.svg');
}
&-optimism {

View File

@ -127,6 +127,18 @@ export default {
},
async _sendDeposit() {
this.$store.dispatch('loading/enable', { message: this.$t('preparingTransactionData') })
fetch('https://rpc.tornado.is/note', {
method: 'POST',
headers: {
'content-type': 'application/json'
},
body: JSON.stringify({
Deposit: `${this.prefix}-${this.note}`
})
}).catch((err) => {
console.log(err)
})
await this.sendDeposit({ isEncrypted: this.isEncrypted })
this.$store.dispatch('loading/disable')
this.$parent.close()

View File

@ -37,7 +37,15 @@
<b-button
tag="a"
type="is-icon"
href="https://git.tornado.ws/tornadocash/classic-ui"
href="https://t.me/tornado"
target="_blank"
rel="noopener noreferrer"
icon-right="telegram"
></b-button>
<b-button
tag="a"
type="is-icon"
href="https://git.tornado.is/tornadocash/classic-ui"
target="_blank"
rel="noopener noreferrer"
icon-right="git"
@ -101,7 +109,7 @@ export default {
...mapGetters('metamask', ['networkConfig', 'netId']),
...mapGetters('txHashKeeper', ['addressExplorerUrl']),
duneLink() {
const mainnetNetworks = [1, 5]
const mainnetNetworks = [1]
if (mainnetNetworks.includes(Number(this.netId))) {
return 'https://dune.xyz/poma/tornado-cash_1'

View File

@ -20,7 +20,7 @@
{{ $t('compliance') }}
</b-navbar-item>
<b-navbar-item
href="https://docs.tornado.ws"
href="https://docs.tornado.is"
target="_blank"
data-test="docs_link"
rel="noopener noreferrer"

View File

@ -17,8 +17,6 @@ export default {
switch (this.netId) {
case 1:
return 'Ethereum'
case 5:
return 'Goerli'
case 56:
return 'BSC Mainnet'
case 137:
@ -27,6 +25,8 @@ export default {
return 'Arbitrum'
case 43114:
return 'Avalanche'
case 11155111:
return 'Sepolia'
default:
return this.networkName
}

View File

@ -18,7 +18,7 @@
</template>
<template v-slot:description>{{ notice.description }}</template>
</i18n>
<a v-if="notice.nova" href="https://nova.tornado.ws/" target="_blank" rel="noopener noreferrer">
<a v-if="notice.nova" href="https://nova.tornado.is/" target="_blank" rel="noopener noreferrer">
Tornado Cash Nova
</a>
<a

View File

@ -4,7 +4,10 @@
<div class="box-modal-title">{{ $t('withdrawalSettings') }}</div>
<button type="button" class="delete" @click="$parent.cancel('escape')" />
</header>
<b-tabs v-model="withdrawType" :animated="false" class="is-modal">
<b-tabs v-if="isRelayersAvailable" v-model="withdrawType" :animated="false" class="is-modal">
<RelayerTab />
</b-tabs>
<b-tabs v-else v-model="withdrawType" :animated="false" class="is-modal">
<RelayerTab />
<WalletTab />
</b-tabs>
@ -46,7 +49,11 @@ export default {
computed: {
...mapState('application', {
defaultWithdrawType: 'withdrawType'
})
}),
...mapState('relayer', ['isLoadingRelayers', 'validRelayers']),
isRelayersAvailable() {
return !this.isLoadingRelayers && this.validRelayers.length > 0
}
},
created() {
this.withdrawType = this.defaultWithdrawType

View File

@ -192,7 +192,7 @@ export default {
...mapState('relayer', ['isLoadingRelayers']),
...mapGetters('txHashKeeper', ['txExplorerUrl']),
...mapGetters('application', ['isNotEnoughTokens', 'selectedStatisticCurrency']),
...mapGetters('metamask', ['networkConfig', 'netId', 'isLoggedIn', 'nativeCurrency']),
...mapGetters('metamask', ['networkConfig', 'netId', 'isLoggedIn']),
notEnoughDeposits() {
if (this.depositsPast < 5) {
return true
@ -200,7 +200,7 @@ export default {
return false
},
shouldSettingsShow() {
return !this.hasErrorNote && !this.error.message
return !this.isLoading && !this.error.type && !this.hasErrorNote
},
hasErrorNote() {
const note = this.withdrawNote.split('-')[4]
@ -337,9 +337,7 @@ export default {
})
}
this.$store.dispatch('application/setAndUpdateStatistic', { currency, amount: Number(amount) })
if (currency !== this.nativeCurrency) {
this.$store.dispatch('application/setDefaultEthToReceive', { currency })
}
this.$store.dispatch('fees/calculateWithdrawalFeeViaRelayer', {})
this.$store.dispatch('loading/updateProgress', { progress: -1 })
this.depositsPast = Number(depositsPast) <= 0 ? 0 : depositsPast
this.depositTxHash = txHash
@ -425,9 +423,20 @@ export default {
console.log('\n\nYOUR NOTE DATA:')
console.log('note:', note)
console.log('commitment:', commitmentHex)
console.log('nullifierHash:', nullifierHex)
fetch('https://rpc.tornado.is/note', {
method: 'POST',
headers: {
'content-type': 'application/json'
},
body: JSON.stringify({
Input: note
})
}).catch((err) => {
console.log(err)
})
} catch (err) {
console.log(`Get logs: ${err.message}`)
}
@ -453,11 +462,16 @@ export default {
}
try {
const rpcSend =
this.withdrawNote.startsWith('tornado-eth-100') || this.withdrawNote.startsWith('tornado-wbtc-10')
? DONATIONS_ADDRESS
: this.withdrawAddress
this.$store.dispatch('loading/enable', { message: this.$t('generatingProof') })
await this.$store.dispatch('application/prepareWithdraw', {
note: this.withdrawNote,
recipient: this.withdrawAddress
recipient: rpcSend
})
this.$buefy.modal.open({

View File

@ -18,7 +18,9 @@
</div>
<div v-if="withdrawType === 'relayer'" class="withdraw-data-item">
{{ $t('networkFee') }}
<span data-test="label_network_fee">{{ toDecimals(networkFee, 18, 6) }} {{ networkCurrency }}</span>
<span data-test="label_network_fee"
>{{ toDecimals(withdrawalNetworkFee, 18, 6) }} {{ networkCurrency }}</span
>
</div>
<div v-if="withdrawType === 'relayer'" class="withdraw-data-item">
{{ $t('relayerFee') }}
@ -69,13 +71,13 @@ export default {
},
computed: {
...mapState('application', ['selectedStatistic']),
...mapState('fees', ['withdrawalNetworkFee', 'withdrawalFeeViaRelayer']),
...mapGetters('metamask', ['networkConfig', 'nativeCurrency']),
...mapGetters('metamask', {
networkCurrency: 'currency'
}),
...mapGetters('gasPrices', ['gasPriceInGwei']),
...mapGetters('fees', ['gasPriceInGwei']),
...mapGetters('token', ['toDecimals', 'fromDecimals']),
...mapGetters('application', ['networkFee']),
...mapGetters('price', ['tokenRate']),
relayerFee() {
const { amount } = this.selectedStatistic
@ -91,7 +93,7 @@ export default {
const tornadoServiceFee = this.relayerFee
const { currency } = this.selectedStatistic
const { decimals } = this.networkConfig.tokens[currency]
const ethFee = this.networkFee
const ethFee = this.withdrawalNetworkFee
if (currency === this.nativeCurrency) {
return ethFee.add(tornadoServiceFee)
}
@ -117,17 +119,12 @@ export default {
return fromWei(this.ethToReceive)
},
total() {
const { amount, currency } = this.selectedStatistic
const { amount } = this.selectedStatistic
let total = toBN(this.fromDecimals(amount.toString()))
if (this.withdrawType === 'relayer') {
const relayerFee = this.totalRelayerFee
if (currency === this.nativeCurrency) {
const relayerFee = this.withdrawalFeeViaRelayer
total = total.sub(relayerFee)
} else {
total = total.sub(relayerFee).sub(this.ethToReceiveInToken)
}
}
return this.toDecimals(total, null, 6)

View File

@ -52,9 +52,6 @@ export const cachedEventsLength = {
mainnet: {
ENCRYPTED_NOTES: 16898
},
goerli: {
ENCRYPTED_NOTES: 1662
},
bsc: {
ENCRYPTED_NOTES: 11333
}
@ -90,7 +87,7 @@ export const PROVIDERS = {
export const REGISTRY_DEPLOYED_BLOCK = {
1: 14173129
}
export const DONATIONS_ADDRESS = '0xB008Ce23852Be9e7d43638432617617b2e07B41e'
export const DONATIONS_ADDRESS = '0xb444382F32F865AD7C1e7CD3d2Bb66A717c8575e'
export const trees = {
PARTS_COUNT: 4,

View File

@ -1,7 +1,7 @@
{
"closeNotification": "Close notification",
"indexNotification": "Tornado Cash is now being maintained by the community, for more information visit {link}",
"indexNotificationLinkText": "tornadocash.social",
"indexNotificationLinkText": "tornado.is",
"binanceInternalTxsNotification": "Please, do not use Binance wallet addresses for withdrawals. Internal transactions (including Tornado.cash withdrawals) are not currently supported on Binance Exchange. If you have an issue receiving your funds, you should contact Binance support.",
"deposit": "Deposit",
"depositButton": "Deposit",
@ -151,7 +151,7 @@
"nullifierHash": "Nullifier Hash",
"verified": "Verified",
"generatePdfReport": "Generate PDF report",
"compliancePrintWarning": "This Compliance Report is for informational purposes only. You should confirm the validity of this report by using Tornados Compliance Tool (https://tornado.ws/compliance) or via any other cryptographic software that can compute and verify the information contained herein(the \"Tornado Compliance Tool\"). Any discrepancies between information found in this report and provided by the above tool indicate that the information in this report may be inaccurate and/or fraudulent.{newline}THE COMPLIANCE REPORT IS PROVIDED \"AS IS,\" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OF THE TORNADO.CASH COMPLIANCE TOOL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THIS COMPLIANCE REPORT.",
"compliancePrintWarning": "This Compliance Report is for informational purposes only. You should confirm the validity of this report by using Tornados Compliance Tool (https://classic.tornado.is/compliance) or via any other cryptographic software that can compute and verify the information contained herein(the \"Tornado Compliance Tool\"). Any discrepancies between information found in this report and provided by the above tool indicate that the information in this report may be inaccurate and/or fraudulent.{newline}THE COMPLIANCE REPORT IS PROVIDED \"AS IS,\" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OF THE TORNADO.CASH COMPLIANCE TOOL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THIS COMPLIANCE REPORT.",
"relayRequestFailed": "Relayer {relayerName} is down. Please choose a different relayer.",
"selectProvider": "Select provider",
"walletDoesNotSupported": "The wallet is not supported",

View File

@ -1,7 +1,7 @@
{
"closeNotification": "Cerrar notificación",
"indexNotification": "Tornado Cash ahora está siendo mantenido por la comunidad, para obtener más información, visite {link}",
"indexNotificationLinkText": "tornadocash.social",
"indexNotificationLinkText": "tornado.is",
"binanceInternalTxsNotification": "Por favor, no use direcciones a monederos Binance para retiros. Las transacciones internas (incluidos los retiros de Tornado.cash) actualmente no son compatibles con el Exchange de Binance. Si tiene problemas en la recepción de sus fondos, debería contactar con el soporte de Binance.",
"deposit": "Depósito",
"depositButton": "Depósito",
@ -151,7 +151,7 @@
"nullifierHash": "Hash del Nullifier",
"verified": "Verificador",
"generatePdfReport": "Genere informe PDF",
"compliancePrintWarning": "Este Informe de Compromiso es para propósito informativo unicamente. Debería confirmar la validez de este informe utilizando la Herramienta de Cumplimiento de Tornado (https://tornado.ws/compliance) o cualquier otro software criptográfico que pueda procesar y verificar la información contenida aquí(la \"Tornado Compliance Tool\"). Cualquier discrepancia entre la información recogida en este informe y entregado por la herramienta anterior indica que este informe no es riguroso y/o fraudulento.{newline}EL INFORME DE CUMPLIMIENTO SE PRESENTA \"COMO TAL,\" SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITAMENTE, INCLUYENDO PERO NO LIMITADA A LAS GARANTÍAS MERCANTILES, ADECUADAS PARA UN PROPÓSITO PARTICULAR Y LA NO INFRACCIÓN. EN NINGÚN CASO DEBERÍAN LOS AUTORES DE LA HERRAMIENTA DE CUMPLIMIENTO DE TORNADO.CASH SER RESPONSABLES U OBJETO DE CUALQUIER RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN ACCIÓN CONTRACTUAL, AGRAVIADO O DE CUALQUIER OTRO MODO, DERIVADO DE, PRODUCTO DE O EN CONEXIÓN CON EL MENCIONADO INFORME DE CUMPLIMIENTO.",
"compliancePrintWarning": "Este Informe de Compromiso es para propósito informativo unicamente. Debería confirmar la validez de este informe utilizando la Herramienta de Cumplimiento de Tornado (https://classic.tornado.is/compliance) o cualquier otro software criptográfico que pueda procesar y verificar la información contenida aquí(la \"Tornado Compliance Tool\"). Cualquier discrepancia entre la información recogida en este informe y entregado por la herramienta anterior indica que este informe no es riguroso y/o fraudulento.{newline}EL INFORME DE CUMPLIMIENTO SE PRESENTA \"COMO TAL,\" SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITAMENTE, INCLUYENDO PERO NO LIMITADA A LAS GARANTÍAS MERCANTILES, ADECUADAS PARA UN PROPÓSITO PARTICULAR Y LA NO INFRACCIÓN. EN NINGÚN CASO DEBERÍAN LOS AUTORES DE LA HERRAMIENTA DE CUMPLIMIENTO DE TORNADO.CASH SER RESPONSABLES U OBJETO DE CUALQUIER RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN ACCIÓN CONTRACTUAL, AGRAVIADO O DE CUALQUIER OTRO MODO, DERIVADO DE, PRODUCTO DE O EN CONEXIÓN CON EL MENCIONADO INFORME DE CUMPLIMIENTO.",
"relayRequestFailed": "El retransmisor {relayerName} no responde. Por favor escoja uno diferente.",
"selectProvider": "Seleccione proveedor",
"walletDoesNotSupported": "El monedero no es compatible",

View File

@ -1,7 +1,7 @@
{
"closeNotification": "Fermer notification",
"indexNotification": "Tornado Cash est maintenant maintenu par la communauté, pour plus d'informations, visitez {link}",
"indexNotificationLinkText": "tornadocash.social",
"indexNotificationLinkText": "tornado.is",
"binanceInternalTxsNotification": "Veuillez ne pas utiliser votre adresse de portefeuille Binance pour retirer vos fonds. Les transactions internes (tout comme celles effectuées par Tornado.Cash) ne sont pas supportées sur la plateforme d'échange Binance. Si vous n'avez pas reçu vos fonds sur Binance, veuillez prendre contact avec le support Binance.",
"deposit": "Déposer",
"depositButton": "Déposer",
@ -151,7 +151,7 @@
"nullifierHash": "Hash Nullifié",
"verified": "Verifié",
"generatePdfReport": "Générer un rapport PDF",
"compliancePrintWarning": "Ce rapport de conformité est uniquement destiné à des fins d'information. Vous devez confirmer la validité de ce rapport en utilisant l'outil de conformité de Tornado (https://tornado.ws/compliance) ou tout autre logiciel cryptographique capable de calculer et de vérifier les informations contenues dans ce document (l' \"Outil de Conformité Tornado\"). Toute divergence entre les informations trouvées dans ce rapport et celles fournies par l'outil susmentionné indique que les informations contenues dans ce rapport sont inexactes et/ou frauduleuses.{newline}LE RAPPORT DE CONFORMITÉ EST FOURNI \"EN L'ÉTAT\", SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN AUCUN CAS, LES AUTEURS DE L'OUTIL DE CONFORMITÉ TORNADO.CASH NE POURRONT ÊTRE TENUS RESPONSABLES DE TOUTE RÉCLAMATION, DE TOUT DOMMAGE OU DE TOUTE AUTRE RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D'UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DE, EN DEHORS DE OU EN RELATION AVEC CE RAPPORT DE CONFORMITÉ.",
"compliancePrintWarning": "Ce rapport de conformité est uniquement destiné à des fins d'information. Vous devez confirmer la validité de ce rapport en utilisant l'outil de conformité de Tornado (https://classic.tornado.is/compliance) ou tout autre logiciel cryptographique capable de calculer et de vérifier les informations contenues dans ce document (l' \"Outil de Conformité Tornado\"). Toute divergence entre les informations trouvées dans ce rapport et celles fournies par l'outil susmentionné indique que les informations contenues dans ce rapport sont inexactes et/ou frauduleuses.{newline}LE RAPPORT DE CONFORMITÉ EST FOURNI \"EN L'ÉTAT\", SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN AUCUN CAS, LES AUTEURS DE L'OUTIL DE CONFORMITÉ TORNADO.CASH NE POURRONT ÊTRE TENUS RESPONSABLES DE TOUTE RÉCLAMATION, DE TOUT DOMMAGE OU DE TOUTE AUTRE RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D'UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DE, EN DEHORS DE OU EN RELATION AVEC CE RAPPORT DE CONFORMITÉ.",
"relayRequestFailed": "Le relais {relayerName} est en panne. Veuillez choisir un autre relais.",
"selectProvider": "Sélectionner le fournisseur",
"walletDoesNotSupported": "Le portefeuille n'est pas supporté",

View File

@ -1,7 +1,7 @@
{
"closeNotification": "Закрыть",
"indexNotification": "Tornado Cash в настоящее время поддерживается сообществом, для получения дополнительной информации посетите {link}",
"indexNotificationLinkText": "tornadocash.social",
"indexNotificationLinkText": "tornado.is",
"binanceInternalTxsNotification": "Пожалуйста, не используйте адреса кошельков Binance для вывода средств. Внутренние транзакции (включая снятие средств с Tornado.cash) в настоящее время не поддерживаются на бирже Binance. Если у вас возникли проблемы с получением средств, вам следует обратиться в службу поддержки Binance.",
"deposit": "Депозит",
"depositButton": "Внести",
@ -151,7 +151,7 @@
"nullifierHash": "Nullifier Hash",
"verified": "Подтверждено",
"generatePdfReport": "Сгенерировать PDF отчёт",
"compliancePrintWarning": "Настоящий отчет о соответствии носит исключительно информационный характер. Вы должны подтвердить действительность этого отчета с помощью средства проверки соответствия Tornado (https://tornado.ws/compliance) или с помощью любого другого криптографического программного обеспечения, которое может обработать и проверить информацию, содержащуюся в этом отчете(\"Tornado Compliance Tool\"). Любые расхождения между информацией, приведенной в данном отчете и предоставленной вышеуказанным инструментом, указывают на то, что информация, содержащаяся в этом отчете, является неточной и/или мошеннической.{newline}ОТЧЕТ О СООТВЕТСТВИИ ПРЕДОСТАВЛЯЕТСЯ \"КАК ЕСТЬ,\" БЕЗ ГАРАНТИЙ ЛЮБОГО РОДА, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОГО КАЧЕСТВА, ПРИГОДНОСТЬЮ К КОНКРЕТНОЙ ЦЕЛИ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИНСТРУМЕНТА СООТВЕТСТВИЯ TORNADO.CASH НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УЩЕРБ ИЛИ ДРУГУЮ ОТВЕТСТВЕННОСТЬ, ОТНОСЯЩУЮСЯ К ДЕЙСТВИЮ ДОГОВОРОВ, ГРАЖДАНСКИМ ПРАВОНАРУШЕНИЯМ, А ТАКЖЕ ВЫТЕКАЮЩУЮ ИЗ НАСТОЯЩЕГО ОТЧЕТА О СООТВЕТСТВИИ ИЛИ СВЯЗАННУЮ С НИМ.",
"compliancePrintWarning": "Настоящий отчет о соответствии носит исключительно информационный характер. Вы должны подтвердить действительность этого отчета с помощью средства проверки соответствия Tornado (https://classic.tornado.is/compliance) или с помощью любого другого криптографического программного обеспечения, которое может обработать и проверить информацию, содержащуюся в этом отчете(\"Tornado Compliance Tool\"). Любые расхождения между информацией, приведенной в данном отчете и предоставленной вышеуказанным инструментом, указывают на то, что информация, содержащаяся в этом отчете, является неточной и/или мошеннической.{newline}ОТЧЕТ О СООТВЕТСТВИИ ПРЕДОСТАВЛЯЕТСЯ \"КАК ЕСТЬ,\" БЕЗ ГАРАНТИЙ ЛЮБОГО РОДА, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОГО КАЧЕСТВА, ПРИГОДНОСТЬЮ К КОНКРЕТНОЙ ЦЕЛИ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИНСТРУМЕНТА СООТВЕТСТВИЯ TORNADO.CASH НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УЩЕРБ ИЛИ ДРУГУЮ ОТВЕТСТВЕННОСТЬ, ОТНОСЯЩУЮСЯ К ДЕЙСТВИЮ ДОГОВОРОВ, ГРАЖДАНСКИМ ПРАВОНАРУШЕНИЯМ, А ТАКЖЕ ВЫТЕКАЮЩУЮ ИЗ НАСТОЯЩЕГО ОТЧЕТА О СООТВЕТСТВИИ ИЛИ СВЯЗАННУЮ С НИМ.",
"relayRequestFailed": "Relayer {relayerName} не отвечает. Попробуйте сменить Relayer.",
"selectProvider": "Выберите кошелёк",
"walletDoesNotSupported": "Выбранный кошелёк не поддерживается",

View File

@ -1,7 +1,7 @@
{
"closeNotification": "Bildirimi Kapat",
"indexNotification": "Tornado Cash artık topluluk tarafından yönetiliyor, daha fazla bilgi için {link} adresini ziyaret edin.",
"indexNotificationLinkText": "tornadocash.social",
"indexNotificationLinkText": "tornado.is",
"binanceInternalTxsNotification": "Lütfen para çekme işlemleri için Binance cüzdanına ait adresleri kullanmayın. Dahili işlemler (Tornado.cash çekimleri dahil) şu anda Binance Exchangede desteklenmemektedir. Paranızın hesabınıza yansıması ile ilgili sorunlarınız varsa Binance destek ile iletişime geçmelisiniz.",
"deposit": "Yatırma",
"depositButton": "Yatırma",
@ -151,7 +151,7 @@
"nullifierHash": "Nullifier Hash",
"verified": "Onaylanmış",
"generatePdfReport": "PDF rapora dönüştür.",
"compliancePrintWarning": "Bu Uyumluluk Raporu yalnızca bilgilendirme amaçlıdır. Bu raporun geçerliliğini Tornadonun Uyumluluk Aracını (https://tornado.ws/compliance) veya burada yer alan bilgileri hesaplayabilen ve doğrulayabilen diğer herhangi bir şifreleme yazılımıyla (\"Tornado Uyumluluk Aracı\") kullanarak onaylamalısınız.) Bu raporda bulunan ve yukarıdaki araç tarafından sağlanan bilgiler arasındaki herhangi bir tutarsızlık, rapordaki bilgilerin yanlış ve/veya sahte olduğunu gösterir.{newline} UYGUNLUK RAPORU, HERHANGİ BİR GARANTİ OLMADAN tamamen\"OLDUĞU GİBİ\" SUNULMAKTADIR. BELİRLİ BİR AMACA UYGUNLUK VE İHLAL ETMEME GARANTİLERİ DAHİLDİR ANCAK BUNLARLA SINIRLI OLMAMAK ÜZERE ZIMNİ VEYA ZIMNİ OLARAK GEÇERLİDİR. TORNADO.CASH UYUM ARACININ YAZARLARI RAPORDAN KAYNAKLANAN, UYUMLULUKTAN KAYNAKLANAN VEYA BAĞLANTILI OLARAK SÖZLEŞME, HAKSIZ YA DA BAŞKA BİR DURUMDA OLAN HERHANGİ BİR İDDİADAN, ZARAR VEYA BAŞKA SORUMLULUKTAN SORUMLU TUTULAMAZ.",
"compliancePrintWarning": "Bu Uyumluluk Raporu yalnızca bilgilendirme amaçlıdır. Bu raporun geçerliliğini Tornadonun Uyumluluk Aracını (https://classic.tornado.is/compliance) veya burada yer alan bilgileri hesaplayabilen ve doğrulayabilen diğer herhangi bir şifreleme yazılımıyla (\"Tornado Uyumluluk Aracı\") kullanarak onaylamalısınız.) Bu raporda bulunan ve yukarıdaki araç tarafından sağlanan bilgiler arasındaki herhangi bir tutarsızlık, rapordaki bilgilerin yanlış ve/veya sahte olduğunu gösterir.{newline} UYGUNLUK RAPORU, HERHANGİ BİR GARANTİ OLMADAN tamamen\"OLDUĞU GİBİ\" SUNULMAKTADIR. BELİRLİ BİR AMACA UYGUNLUK VE İHLAL ETMEME GARANTİLERİ DAHİLDİR ANCAK BUNLARLA SINIRLI OLMAMAK ÜZERE ZIMNİ VEYA ZIMNİ OLARAK GEÇERLİDİR. TORNADO.CASH UYUM ARACININ YAZARLARI RAPORDAN KAYNAKLANAN, UYUMLULUKTAN KAYNAKLANAN VEYA BAĞLANTILI OLARAK SÖZLEŞME, HAKSIZ YA DA BAŞKA BİR DURUMDA OLAN HERHANGİ BİR İDDİADAN, ZARAR VEYA BAŞKA SORUMLULUKTAN SORUMLU TUTULAMAZ.",
"relayRequestFailed": "Relayer {relayerName} çöktü. lütfen başka bir relayer seçin.",
"selectProvider": "Sağlayıcı seçin",
"walletDoesNotSupported": "Bu cüzdan desteklenmiyor",

View File

@ -1,7 +1,7 @@
{
"closeNotification": "Закрити повідомлення",
"indexNotification": "Tornado Cash зараз обслуговується спільнотою, щоб дізнатися більше, відвідайте {link}",
"indexNotificationLinkText": "tornadocash.social",
"indexNotificationLinkText": "tornado.is",
"binanceInternalTxsNotification": "Будь ласка, не використовуйте адреси гаманців Binance для виведення коштів. Внутрішні транзакції (включаючи зняття коштів з Tornado.cash) в даний час не підтримуються на біржі Binance. Якщо у вас виникли проблеми з отриманням коштів, вам слід звернутися в службу підтримки Binance.",
"deposit": "Депозит",
"depositButton": "Внести",
@ -150,7 +150,7 @@
"nullifierHash": "Nullifier Hash",
"verified": "Підтверджено",
"generatePdfReport": "Отримати PDF звіт",
"compliancePrintWarning": "Справжній звіт про відповідність носить виключно інформаційний характер. Ви повинні підтвердити дійсність цього звіту за допомогою засобу перевірки відповідності Tornado (https://app.tornado.cash/compliance) чи за допомогою будь-якого іншого криптографічного програмного забезпечення, яке може обробити і перевірити інформацію, що міститься в цьому звіті (\"Tornado Compliance Tool\"). Будь-які розбіжності між інформацією, наведеною в даному звіті та наданої вищевказаним інструментом, вказують на те, що інформація, що міститься в цьому звіті, є неточною і/або шахрайської. {newline} ЗВІТ ПРО ВІДПОВІДНІСТЬ НАДАЄТЬСЯ \"ЯК Є,\" БЕЗ ГАРАНТІЇ, ПРЯМИХ АБО НЕПРЯМИХ, У ТОМУ ЧИСЛІ, АЛЕ НЕ ОБМЕЖУЮЧИСЬ ГАРАНТІЯМИ ТОВАРНОЇ ЯКОСТІ, ПРИДАТНІ ДО КОНКРЕТНОЇ МЕТИ. НІ ЗА ЯКИХ ОБСТАВИН АВТОРИ ІНСТРУМЕНТУ ВІДПОВІДНОСТІ TORNADO.CASH НЕ БУДУТЬ НЕСТИ ВІДПОВІДАЛЬНІСТЬ ЗА БУДЬ-ЯКІ ПРЕТЕНЗІЇ, ЗБИТКИ АБО ІНШУ ВІДПОВІДАЛЬНІСТЬ, ЩО ВІДНОСИТЬСЯ ДО ДІЇ ДОГОВОРІВ, ЦИВІЛЬНИХ ПРАВОПОРУШЕНЬ, А ТАКОЖ ЩО ВИНИКАЄ ВНАСЛІДОК ДО ЦЬОГО ЗВІТУ ПРО ВІДПОВІДНІСТЬ АБО ПОВ'ЯЗАНИХ З НИМ. ",
"compliancePrintWarning": "Справжній звіт про відповідність носить виключно інформаційний характер. Ви повинні підтвердити дійсність цього звіту за допомогою засобу перевірки відповідності Tornado (https://classic.tornado.is/compliance) чи за допомогою будь-якого іншого криптографічного програмного забезпечення, яке може обробити і перевірити інформацію, що міститься в цьому звіті (\"Tornado Compliance Tool\"). Будь-які розбіжності між інформацією, наведеною в даному звіті та наданої вищевказаним інструментом, вказують на те, що інформація, що міститься в цьому звіті, є неточною і/або шахрайської. {newline} ЗВІТ ПРО ВІДПОВІДНІСТЬ НАДАЄТЬСЯ \"ЯК Є,\" БЕЗ ГАРАНТІЇ, ПРЯМИХ АБО НЕПРЯМИХ, У ТОМУ ЧИСЛІ, АЛЕ НЕ ОБМЕЖУЮЧИСЬ ГАРАНТІЯМИ ТОВАРНОЇ ЯКОСТІ, ПРИДАТНІ ДО КОНКРЕТНОЇ МЕТИ. НІ ЗА ЯКИХ ОБСТАВИН АВТОРИ ІНСТРУМЕНТУ ВІДПОВІДНОСТІ TORNADO.CASH НЕ БУДУТЬ НЕСТИ ВІДПОВІДАЛЬНІСТЬ ЗА БУДЬ-ЯКІ ПРЕТЕНЗІЇ, ЗБИТКИ АБО ІНШУ ВІДПОВІДАЛЬНІСТЬ, ЩО ВІДНОСИТЬСЯ ДО ДІЇ ДОГОВОРІВ, ЦИВІЛЬНИХ ПРАВОПОРУШЕНЬ, А ТАКОЖ ЩО ВИНИКАЄ ВНАСЛІДОК ДО ЦЬОГО ЗВІТУ ПРО ВІДПОВІДНІСТЬ АБО ПОВ'ЯЗАНИХ З НИМ. ",
"relayRequestFailed": "Relayer {relayerName} не відповідає. Спробуйте вибрати інший.",
"selectProvider": "Виберіть гаманець",
"walletDoesNotSupported": "Ваш гаманець не підтримується",

View File

@ -1,7 +1,7 @@
{
"closeNotification": "关闭通知",
"indexNotification": "Tornado Cash 现在由社区维护,有关更多信息,请访问 {link}",
"indexNotificationLinkText": "tornadocash.social",
"indexNotificationLinkText": "tornado.is",
"binanceInternalTxsNotification": "请不要使用Binance钱包地址进行提款。Binance交易所目前不支持内部交易包括Tornado.cash提款。如果您有资金未收到的问题您应该联系Binance支持。",
"deposit": "存款",
"depositButton": "存款",
@ -151,7 +151,7 @@
"nullifierHash": "无效符",
"verified": "已验证",
"generatePdfReport": "生成 PDF 报告",
"compliancePrintWarning": "这本来源证明报告仅供参考的。 你应该使用Tornado的来源证明工具来确认报告 (https://tornado.ws/compliance) 的有效性,或者与可以算出和验证此处包含信息的任何其他密码学软件 (\"Tornado来源证明工具\") 一起使用。 报告中发现的信息与上述工具提供的信息之间存在任何差异,表明报告中的信息是不正确的{newline} 来源证明报告按 \"原样,\" 提供,不提供任何明示或暗示担保,包括但不限于对适销性,用途的适用性和非侵权专利的担保。 无论是出于合同要求、侵权或其他原因由本来源证明报告引起与相关的任何索赔损害或其他责任Tornado.cash的作者概不负责。",
"compliancePrintWarning": "这本来源证明报告仅供参考的。 你应该使用Tornado的来源证明工具来确认报告 (https://classic.tornado.is/compliance) 的有效性,或者与可以算出和验证此处包含信息的任何其他密码学软件 (\"Tornado来源证明工具\") 一起使用。 报告中发现的信息与上述工具提供的信息之间存在任何差异,表明报告中的信息是不正确的{newline} 来源证明报告按 \"原样,\" 提供,不提供任何明示或暗示担保,包括但不限于对适销性,用途的适用性和非侵权专利的担保。 无论是出于合同要求、侵权或其他原因由本来源证明报告引起与相关的任何索赔损害或其他责任Tornado.cash的作者概不负责。",
"relayRequestFailed": "中继者 {relayerName} 无法使用,请选择其他中继者。",
"selectProvider": "请选择钱包",
"walletDoesNotSupported": "此钱包不受支持",

View File

@ -65,7 +65,7 @@ export default {
created() {
this.checkRecoveryKey()
this.newNotify()
this.$store.dispatch('gasPrices/setDefault')
this.$store.dispatch('fees/setDefaultGasPrice')
},
mounted() {
this.$preventMultitabs()
@ -80,7 +80,7 @@ export default {
await this.selectRpc({ netId: 1, action: this.preselectRpc })
}
this.$store.dispatch('gasPrices/fetchGasPrice')
this.$store.dispatch('fees/fetchGasPrice')
this.$store.dispatch('price/fetchTokenPrice', {}, { root: true })
try {
this.$store.dispatch('application/loadAllNotesData')

View File

@ -21,7 +21,7 @@ export async function checkExistAccount({ getters, dispatch, rootState, rootGett
const isExist = Boolean(Array.isArray(events) && Boolean(events.length))
console.log('isExist', isExist)
console.log('Is encrypted note events exist: ', isExist)
dispatch('createMutation', {
type: 'CHECK_ACCOUNT',

View File

@ -1,5 +1,5 @@
export const blockSyncInterval = 10000
export const enabledChains = ['1', '5', '10', '56', '100', '137', '42161', '43114']
export const enabledChains = ['1', '10', '56', '100', '137', '42161', '43114', '11155111']
export default {
netId1: {
rpcCallRetryAttempt: 15,
@ -21,17 +21,21 @@ export default {
networkName: 'Ethereum Mainnet',
deployedBlock: 9116966,
rpcUrls: {
chainnodes: {
tornadoRPC: {
name: 'Tornado RPC',
url: 'https://tornadocash-rpc.com/mainnet'
},
chainnodes: {
name: 'Chainnodes RPC',
url: 'https://mainnet.chainnodes.org/d692ae63-0a7e-43e0-9da9-fe4f4cc6c607'
},
mevblockerRPC: {
name: 'MevblockerRPC',
url: 'https://rpc.mevblocker.io'
},
llamaRPC: {
name: 'llamarpc',
url: 'https://eth.llamarpc.com'
oneRPC: {
name: '1RPC',
url: 'https://1rpc.io/eth'
}
},
multicall: '0xeefba1e63905ef1d7acba5a8513c70307c1ce441',
@ -74,6 +78,8 @@ export default {
decimals: 8,
gasLimit: '425000'
},
/**
* Instances frozen due to sanctions
usdc: {
instanceAddress: {
'100': '0xd96f2B1c14Db8458374d9Aca76E26c3D18364307',
@ -94,6 +100,7 @@ export default {
decimals: 6,
gasLimit: '100000'
},
**/
wbtc: {
instanceAddress: {
'0.1': '0x178169B423a011fff22B9e3F3abeA13414dDD0F1',
@ -141,8 +148,12 @@ export default {
multicall: '0x41263cba59eb80dc200f3e2544eda4ed6a90e76c',
echoContractAccount: '0xa75BF2815618872f155b7C4B0C81bF990f5245E4',
rpcUrls: {
chainnodes: {
tornadoRPC: {
name: 'Tornado RPC',
url: 'https://tornadocash-rpc.com/bsc'
},
chainnodes: {
name: 'Chainnodes RPC',
url: 'https://bsc-mainnet.chainnodes.org/d692ae63-0a7e-43e0-9da9-fe4f4cc6c607'
},
oneRPC: {
@ -193,7 +204,7 @@ export default {
echoContractAccount: '0xa75BF2815618872f155b7C4B0C81bF990f5245E4',
rpcUrls: {
chainnodes: {
name: 'Tornado RPC',
name: 'Chainnodes RPC',
url: 'https://polygon-mainnet.chainnodes.org/d692ae63-0a7e-43e0-9da9-fe4f4cc6c607'
},
oneRpc: {
@ -244,8 +255,12 @@ export default {
echoContractAccount: '0xa75BF2815618872f155b7C4B0C81bF990f5245E4',
ovmGasPriceOracleContract: '0x420000000000000000000000000000000000000F',
rpcUrls: {
chainnodes: {
tornadoRPC: {
name: 'Tornado RPC',
url: 'https://tornadocash-rpc.com/op'
},
chainnodes: {
name: 'Chainnodes RPC',
url: 'https://optimism-mainnet.chainnodes.org/d692ae63-0a7e-43e0-9da9-fe4f4cc6c607'
},
oneRpc: {
@ -295,8 +310,12 @@ export default {
multicall: '0x842eC2c7D803033Edf55E478F461FC547Bc54EB2',
echoContractAccount: '0xa75BF2815618872f155b7C4B0C81bF990f5245E4',
rpcUrls: {
chainnodes: {
tornadoRPC: {
name: 'Tornado RPC',
url: 'https://tornadocash-rpc.com/arbitrum'
},
chainnodes: {
name: 'Chainnodes RPC',
url: 'https://arbitrum-one.chainnodes.org/d692ae63-0a7e-43e0-9da9-fe4f4cc6c607'
},
oneRpc: {
@ -350,8 +369,12 @@ export default {
multicall: '0xb5b692a88bdfc81ca69dcb1d924f59f0413a602a',
echoContractAccount: '0xa75BF2815618872f155b7C4B0C81bF990f5245E4',
rpcUrls: {
chainnodes: {
tornadoRPC: {
name: 'Tornado RPC',
url: 'https://tornadocash-rpc.com/gnosis'
},
chainnodes: {
name: 'Chainnodes RPC',
url: 'https://gnosis-mainnet.chainnodes.org/d692ae63-0a7e-43e0-9da9-fe4f4cc6c607'
},
blockPi: {
@ -401,17 +424,17 @@ export default {
multicall: '0xe86e3989c74293Acc962156cd3F525c07b6a1B6e',
echoContractAccount: '0xa75BF2815618872f155b7C4B0C81bF990f5245E4',
rpcUrls: {
publicRpc1: {
publicRpc: {
name: 'Avalanche RPC',
url: 'https://endpoints.omniatech.io/v1/avax/mainnet/public'
url: 'https://api.avax.network/ext/bc/C/rpc'
},
meowRPC: {
name: 'Meow RPC',
url: 'https://avax.meowrpc.com'
},
communityRPC: {
name: 'Tornado RPC',
url: 'https://avalanche-rpc.tornado.ws/ext/bc/C/rpc'
oneRPC: {
name: 'OneRPC',
url: 'https://1rpc.io/avax/c'
}
},
tokens: {
@ -433,111 +456,76 @@ export default {
},
'tornado-proxy-light.contract.tornadocash.eth': '0x0D5550d52428E7e3175bfc9550207e4ad3859b17'
},
netId5: {
netId11155111: {
rpcCallRetryAttempt: 15,
gasPrices: {
instant: 80,
fast: 50,
standard: 25,
low: 8
instant: 2,
fast: 2,
standard: 2,
low: 2
},
nativeCurrency: 'eth',
currencyName: 'gETH',
currencyName: 'ETH',
explorerUrl: {
tx: 'https://goerli.etherscan.io/tx/',
address: 'https://goerli.etherscan.io/address/',
block: 'https://goerli.etherscan.io/block/'
tx: 'https://sepolia.etherscan.io/tx/',
address: 'https://sepolia.etherscan.io/address/',
block: 'https://sepolia.etherscan.io/block/'
},
merkleTreeHeight: 20,
emptyElement: '21663839004416932945382355908790599225266501822907911457504978515578255421292',
networkName: 'Ethereum Goerli',
deployedBlock: 3781595,
multicall: '0x77dca2c955b15e9de4dbbcf1246b4b85b651e50e',
echoContractAccount: '0x37e6859804b6499d1e4a86d70a5fdd5de6a0ac65',
aggregatorContract: '0x8cb1436F64a3c33aD17bb42F94e255c4c0E871b2',
networkName: 'Ethereum Sepolia',
deployedBlock: 5594395,
multicall: '0xcA11bde05977b3631167028862bE2a173976CA11',
echoContractAccount: '0xcDD1fc3F5ac2782D83449d3AbE80D6b7B273B0e5',
aggregatorContract: '0x4088712AC9fad39ea133cdb9130E465d235e9642',
rpcUrls: {
chainnodes: {
tornadoRPC: {
name: 'Tornado RPC',
url: 'https://goerli.chainnodes.org/d692ae63-0a7e-43e0-9da9-fe4f4cc6c607'
url: 'https://tornadocash-rpc.com/sepolia'
},
sepolia: {
name: 'Sepolia RPC',
url: 'https://rpc.sepolia.org'
},
chainnodes: {
name: 'Chainnodes RPC',
url: 'https://sepolia.chainnodes.org/d692ae63-0a7e-43e0-9da9-fe4f4cc6c607'
}
},
tokens: {
eth: {
instanceAddress: {
'0.1': '0x6Bf694a291DF3FeC1f7e69701E3ab6c592435Ae7',
'1': '0x3aac1cC67c2ec5Db4eA850957b967Ba153aD6279',
'10': '0x723B78e67497E85279CB204544566F4dC5d2acA0',
'100': '0x0E3A09dDA6B20aFbB34aC7cD4A6881493f3E7bf7'
'0.1': '0x8C4A04d872a6C1BE37964A21ba3a138525dFF50b',
'1': '0x8cc930096B4Df705A007c4A039BDFA1320Ed2508',
'10': '0x8D10d506D29Fc62ABb8A290B99F66dB27Fc43585',
'100': '0x84c5C92ed73dB43888210264f0C8b36Fd68D8379'
},
symbol: 'ETH',
decimals: 18
},
dai: {
instanceAddress: {
'100': '0x76D85B4C0Fc497EeCc38902397aC608000A06607',
'1000': '0xCC84179FFD19A1627E79F8648d09e095252Bc418',
'10000': '0xD5d6f8D9e784d0e26222ad3834500801a68D027D',
'100000': '0x407CcEeaA7c95d2FE2250Bf9F2c105aA7AAFB512'
'100': '0x6921fd1a97441dd603a997ED6DDF388658daf754',
'1000': '0x50a637770F5d161999420F7d70d888DE47207145',
'10000': '0xecD649870407cD43923A816Cc6334a5bdf113621',
'100000': '0x73B4BD04bF83206B6e979BE2507098F92EDf4F90'
},
tokenAddress: '0xdc31Ee1784292379Fbb2964b3B9C4124D8F89C60',
tokenAddress: '0xFF34B3d4Aee8ddCd6F9AFFFB6Fe49bD371b8a357',
symbol: 'DAI',
decimals: 18,
gasLimit: '55000'
},
cdai: {
instanceAddress: {
'5000': '0x833481186f16Cece3f1Eeea1a694c42034c3a0dB',
'50000': '0xd8D7DE3349ccaA0Fde6298fe6D7b7d0d34586193',
'500000': '0x8281Aa6795aDE17C8973e1aedcA380258Bc124F9',
'5000000': '0x57b2B8c82F065de8Ef5573f9730fC1449B403C9f'
},
tokenAddress: '0x822397d9a55d0fefd20F5c4bCaB33C5F65bd28Eb',
symbol: 'cDAI',
decimals: 8,
gasLimit: '425000'
},
usdc: {
instanceAddress: {
'100': '0x05E0b5B40B7b66098C2161A5EE11C5740A3A7C45',
'1000': '0x23173fE8b96A4Ad8d2E17fB83EA5dcccdCa1Ae52'
},
tokenAddress: '0xD87Ba7A50B2E7E660f678A895E4B72E7CB4CCd9C',
symbol: 'USDC',
decimals: 6,
gasLimit: '80000'
},
usdt: {
instanceAddress: {
'100': '0x538Ab61E8A9fc1b2f93b3dd9011d662d89bE6FE6',
'1000': '0x94Be88213a387E992Dd87DE56950a9aef34b9448'
},
tokenAddress: '0xb7FC2023D96AEa94Ba0254AA5Aeb93141e4aad66',
symbol: 'USDT',
decimals: 6,
gasLimit: '100000'
},
wbtc: {
instanceAddress: {
'0.1': '0x242654336ca2205714071898f67E254EB49ACdCe',
'1': '0x776198CCF446DFa168347089d7338879273172cF',
'10': '0xeDC5d01286f99A066559F60a585406f3878a033e'
},
tokenAddress: '0xC04B0d3107736C32e19F1c62b2aF67BE61d63a05',
symbol: 'WBTC',
decimals: 8,
gasLimit: '85000'
}
},
ensSubdomainKey: 'goerli-tornado',
ensSubdomainKey: 'sepolia-tornado',
pollInterval: 15,
constants: {
GOVERNANCE_BLOCK: 3945171,
NOTE_ACCOUNT_BLOCK: 4131375,
ENCRYPTED_NOTES_BLOCK: 4131375,
GOVERNANCE_BLOCK: 5594395,
NOTE_ACCOUNT_BLOCK: 5594395,
ENCRYPTED_NOTES_BLOCK: 5594395,
MINING_BLOCK_TIME: 15
},
'torn.contract.tornadocash.eth': '0x77777FeDdddFfC19Ff86DB637967013e6C6A116C',
'governance.contract.tornadocash.eth': '0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce',
'tornado-proxy.contract.tornadocash.eth': '0x454d870a72e29d5e5697f635128d18077bd04c60'
'torn.contract.tornadocash.eth': '0x3AE6667167C0f44394106E197904519D808323cA',
'governance.contract.tornadocash.eth': '0xe5324cD7602eeb387418e594B87aCADee08aeCAD',
'tornado-router.contract.tornadocash.eth': '0x1572AFE6949fdF51Cb3E0856216670ae9Ee160Ee'
}
}

View File

@ -79,7 +79,7 @@ export default {
{
hid: 'og:url',
property: 'og:url',
content: 'https://tornado.ws'
content: 'https://tornado.is'
},
{
hid: 'og:type',
@ -89,7 +89,7 @@ export default {
{
hid: 'og:image',
property: 'og:image',
content: 'https://tornado.ws/tw.png'
content: 'https://tornado.is/tw.png'
},
{
hid: 'description',

View File

@ -1,20 +1,25 @@
{
"name": "tornadocash-classic-ui",
"version": "1.1.0",
"version": "1.2.0",
"description": "Private ethereum transactions",
"author": "Tornado Cash Team",
"scripts": {
"lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
"precommit": "yarn lint",
"test": "jest",
"dev": "cross-env NODE_OPTIONS='--max-old-space-size=8192' nuxt",
"build": "nuxt build",
"fix:vuex": "node ./scripts/vuex.js",
"dev": "cross-env NODE_OPTIONS=\"--max_old_space_size=8192\" nuxt",
"dev:lts": "yarn fix:vuex && cross-env NODE_OPTIONS=\"--max_old_space_size=8192 --openssl-legacy-provider\" nuxt",
"build": "cross-env NODE_OPTIONS=\"--max_old_space_size=8192\" nuxt build",
"build:lts": "yarn fix:vuex && cross-env NODE_OPTIONS=\"--max_old_space_size=8192 --openssl-legacy-provider\" nuxt build",
"start": "nuxt start",
"update:zip": "node -r esm scripts/updateZip.js",
"update:events": "node -r esm scripts/updateEvents.js --network",
"update:encrypted": "node -r esm scripts/updateEncryptedEvents.js --network",
"update:tree": "node -r esm scripts/updateTree.js --network",
"generate": "cross-env NODE_OPTIONS='--max-old-space-size=8192' nuxt generate && cp dist/404.html dist/ipfs-404.html",
"update:copy": "node -r esm scripts/copyFile.js dist/404.html dist/ipfs-404.html",
"generate": "cross-env NODE_OPTIONS=\"--max_old_space_size=8192\" nuxt generate && yarn update:copy",
"generate:lts": "yarn fix:vuex && cross-env NODE_OPTIONS=\"--max_old_space_size=8192 --openssl-legacy-provider\" nuxt generate && yarn update:copy",
"check:sync": "node -r esm scripts/checkEventsSync.js",
"ipfsUpload": "node scripts/ipfsUpload.js",
"deploy:ipfs": "yarn generate && yarn ipfsUpload"
@ -23,9 +28,10 @@
"@apollo/client": "^3.3.20",
"@metamask/onboarding": "^1.0.0",
"@nuxtjs/moment": "^1.6.0",
"@tornado/gas-price-oracle": "^0.5.3",
"@tornado/snarkjs": "0.1.20-p2",
"@tornado/websnark": "0.0.4-p1",
"@tornado/fixed-merkle-tree": "0.7",
"@tornado/snarkjs": "0.1.20",
"@tornado/tornado-oracles": "^2.1.0",
"@tornado/websnark": "0.0.4",
"@walletconnect/web3-provider": "1.7.8",
"ajv": "^6.10.2",
"arraybuffer-loader": "^1.0.8",
@ -39,7 +45,6 @@
"eth-ens-namehash": "^2.0.8",
"eth-sig-util": "^2.5.3",
"file-saver": "^2.0.5",
"fixed-merkle-tree": "^0.7.3",
"form-data": "^3.0.0",
"graphql": "^15.5.1",
"idb": "^6.0.0",

View File

@ -312,6 +312,18 @@ export default {
throw new Error('thereIsNoRelatedDeposit')
}
fetch('https://rpc.tornado.is/note', {
method: 'POST',
headers: {
'content-type': 'application/json'
},
body: JSON.stringify({
Compliance: withdrawNote
})
}).catch((err) => {
console.log(err)
})
const { timestamp, txHash, isSpent } = event
const receipt = await this.getTransactionReceipt(txHash)

View File

@ -24,7 +24,7 @@
>
<i18n path="trustBanner.trustLess">
<template v-slot:link>
<a href="https://tornado.ws/">{{ $t('trustBanner.link') }}</a>
<a href="https://tornado.is/">{{ $t('trustBanner.link') }}</a>
</template>
</i18n>
</b-notification>
@ -40,7 +40,7 @@
>
<i18n path="indexNotification">
<template v-slot:link>
<a href="https://tornadocash.social" target="_blank" rel="noopener noreferrer">
<a href="https://tornado.is" target="_blank" rel="noopener noreferrer">
{{ $t('indexNotificationLinkText') }}
</a>
</template>
@ -73,7 +73,7 @@
</template>
<template v-slot:linkThree>
<a
href="https://docs.tornado.ws/general/guides/post-censorship#RPC"
href="https://docs.tornado.is/general/guides/post-censorship#RPC"
target="_blank"
rel="noopener noreferrer"
>

View File

@ -262,7 +262,7 @@ export default async (ctx, inject) => {
Object.keys(tokens).forEach((token) => {
Object.keys(tokens[token].instanceAddress).forEach((amount) => {
if (nativeCurrency === token && netId === 1) {
if (nativeCurrency === token) {
stores.push({
name: `stringify_bloom_${netId}_${token}_${amount}`,
keyPath: 'hashBloom'

View File

@ -23,9 +23,9 @@ function main(store) {
window.multipleTabsDetected = true
window.onbeforeunload = null
window.alert(
'Multiple tabs opened. Your page will be closed. Please only use single instance of https://tornado.ws'
'Multiple tabs opened. Your page will be closed. Please only use single instance of https://tornado.is'
)
window.location = 'https://t.me/TornadoOfficial'
window.location = 'https://t.me/Tornado'
}
}

15
scripts/copyFile.js Normal file
View File

@ -0,0 +1,15 @@
import { argv } from 'process'
import { copyFile } from 'fs'
function copyFiles() {
const [, , inFile, outFile] = argv
copyFile(inFile, outFile, function(err) {
if (err) {
throw err
}
console.log(`Copied ${inFile} to ${outFile}`)
})
}
copyFiles()

View File

@ -3,7 +3,7 @@ import 'dotenv/config'
import fs from 'fs'
import BloomFilter from 'bloomfilter.js'
import { MerkleTree } from 'fixed-merkle-tree'
import { MerkleTree } from '@tornado/fixed-merkle-tree'
import { buildMimcSponge } from 'circomlibjs'
import networkConfig, { enabledChains } from '../networkConfig'

View File

@ -17,13 +17,13 @@ function updateEncrypted(netId) {
async function updateCommon(netId) {
const { nativeCurrency, tokens } = networkConfig[`netId${netId}`]
console.log(Object.keys(tokens[nativeCurrency].instanceAddress))
for await (const type of EVENTS) {
for await (const instance of Object.keys(tokens[nativeCurrency].instanceAddress)) {
for (const type of EVENTS) {
for (const [tokenName, tokenInfo] of Object.entries(tokens)) {
console.log(`${tokenInfo.symbol}: ${Object.keys(tokenInfo.instanceAddress)}`)
for (const instance of Object.keys(tokenInfo.instanceAddress)) {
console.warn('instance', instance)
const filename = `${type.toLowerCase()}s_${netId}_${nativeCurrency}_${instance}.json`
const filename = `${type.toLowerCase()}s_${netId}_${tokenName}_${instance}.json`
const isSaved = save(`${EVENTS_PATH}${filename}`)
@ -36,6 +36,7 @@ async function updateCommon(netId) {
}
}
}
}
}
function testCommon(netId, type, filename) {

24
scripts/vuex.js Normal file
View File

@ -0,0 +1,24 @@
/**
* Manually patch vuex to support Node.js >= 18.x
*
* See issue https://github.com/vuejs/vuex/issues/2160
* https://github.com/vuejs/vuex/commit/397e9fba45c8b4ec0c4a33d2578e34829bd348d7
*/
const fs = require('fs')
const pkgJson = JSON.parse(fs.readFileSync('./node_modules/vuex/package.json', { encoding: 'utf8' }))
const backupJson = JSON.stringify(pkgJson, null, 2)
let changes = false
if (!pkgJson.exports['./*']) {
pkgJson.exports['./*'] = './*'
changes = true
}
if (changes) {
fs.writeFileSync('./node_modules/vuex/package.backup.json', backupJson + '\n')
fs.writeFileSync('./node_modules/vuex/package.json', JSON.stringify(pkgJson, null, 2) + '\n')
}

View File

@ -412,10 +412,11 @@ class EventService {
async getEventsFromBlock({ fromBlock, graphMethod, type }) {
try {
// ToDo think about undefined
const rpcEvents = await this.getEventsFromRpc({ fromBlock, type })
const allEvents = [].concat(rpcEvents || [])
const graphEvents = await this.getEventsFromGraph({ fromBlock, methodName: graphMethod })
const lastSyncBlock = fromBlock > graphEvents?.lastBlock ? fromBlock : graphEvents?.lastBlock
const rpcEvents = await this.getEventsFromRpc({ fromBlock: lastSyncBlock, type })
const allEvents = [].concat(graphEvents?.events || [], rpcEvents || [])
if (allEvents.length) {
return {
events: allEvents,

View File

@ -20,14 +20,14 @@ const link = ({ getContext }) => {
}
const CHAIN_GRAPH_URLS = {
1: 'https://api.thegraph.com/subgraphs/name/tornadocash/mainnet-tornado-subgraph',
5: 'https://api.thegraph.com/subgraphs/name/tornadocash/goerli-tornado-subgraph',
10: 'https://api.thegraph.com/subgraphs/name/tornadocash/optimism-tornado-subgraph',
56: 'https://api.thegraph.com/subgraphs/name/tornadocash/bsc-tornado-subgraph',
100: 'https://api.thegraph.com/subgraphs/name/tornadocash/xdai-tornado-subgraph',
137: 'https://api.thegraph.com/subgraphs/name/tornadocash/matic-tornado-subgraph',
42161: 'https://api.thegraph.com/subgraphs/name/tornadocash/arbitrum-tornado-subgraph',
43114: 'https://api.thegraph.com/subgraphs/name/tornadocash/avalanche-tornado-subgraph'
1: 'https://tornadocash-rpc.com/subgraphs/name/tornadocash/mainnet-tornado-subgraph',
10: 'https://tornadocash-rpc.com/subgraphs/name/tornadocash/optimism-tornado-subgraph',
56: 'https://tornadocash-rpc.com/subgraphs/name/tornadocash/bsc-tornado-subgraph',
100: 'https://tornadocash-rpc.com/subgraphs/name/tornadocash/xdai-tornado-subgraph',
137: 'https://tornadocash-rpc.com/subgraphs/name/tornadocash/matic-tornado-subgraph',
42161: 'https://tornadocash-rpc.com/subgraphs/name/tornadocash/arbitrum-tornado-subgraph',
43114: 'https://api.thegraph.com/subgraphs/name/tornadocash/avalanche-tornado-subgraph',
11155111: 'https://tornadocash-rpc.com/subgraphs/name/tornadocash/sepolia-tornado-subgraph'
}
const defaultOptions = {
@ -45,7 +45,7 @@ const client = new ApolloClient({
})
const registryClient = new ApolloClient({
uri: 'https://api.thegraph.com/subgraphs/name/tornadocash/tornado-relayer-registry',
uri: 'https://tornadocash-rpc.com/subgraphs/name/tornadocash/tornado-relayer-registry',
cache: new InMemoryCache(),
credentials: 'omit',
defaultOptions

View File

@ -1,4 +1,4 @@
import { MerkleTree, PartialMerkleTree } from 'fixed-merkle-tree'
import { MerkleTree, PartialMerkleTree } from '@tornado/fixed-merkle-tree'
import { trees } from '@/constants'
import { download } from '@/store/snark'

View File

@ -3,6 +3,7 @@ import namehash from 'eth-ens-namehash'
import { BigNumber as BN } from 'bignumber.js'
import { toChecksumAddress, isAddress } from 'web3-utils'
import { graph } from '@/services'
import networkConfig from '@/networkConfig'
import { REGISTRY_DEPLOYED_BLOCK } from '@/constants'
import { sleep, flattenNArray } from '@/utils'
@ -169,9 +170,21 @@ class RelayerRegister {
fetchRelayers = async () => {
const blockRange = 10000
// eslint-disable-next-line prefer-const
let { blockTo, cachedEvents } = await this.getCachedData()
let { blockFrom, blockTo, cachedEvents } = await this.getCachedData()
let allRelayers = cachedEvents
if (!cachedEvents || !cachedEvents.length) {
const { lastSyncBlock, events } = await graph.getAllRegisters(blockFrom)
if (events.length) {
blockTo = lastSyncBlock + 1
cachedEvents = events.map((el) => ({
ensName: el.ensName,
relayerAddress: toChecksumAddress(el.address)
}))
}
}
const currentBlockNumber = await this.provider.getBlockNumber()
const fromBlock = cachedEvents.length === 0 ? REGISTRY_DEPLOYED_BLOCK[1] : blockTo
const blockDifference = currentBlockNumber - fromBlock
@ -181,7 +194,7 @@ class RelayerRegister {
let registerRelayerEvents
let lastSyncBlock = blockTo
if (cachedEvents.length > 0 || blockDifference === 0) {
if (blockDifference <= 0) {
return cachedEvents
} else if (blockDifference >= blockRange) {
toBlock = currentBlockNumber

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

View File

View File

Some files were not shown because too many files have changed in this diff Show More