Merge pull request 'PR #2: allow setting sync interval for blocks' (#26) from AlienTornadosaurusHex/classic-ui:master into master

Reviewed-on: tornadocash/classic-ui#26
This commit is contained in:
Theo 2023-07-14 20:09:37 +02:00
commit bc2e1d47e1
3 changed files with 28 additions and 14 deletions

@ -1,6 +1,6 @@
# Tornado Cash Classic UI # Tornado Cash Classic UI
> UI for non-custodial Ethereum Privacy solution > Self-hostable Tornado Cash UI software for interacting with the protocol
## Building locally ## Building locally
@ -31,29 +31,42 @@ For detailed explanation on how things work, checkout [Nuxt.js docs](https://nux
## Update cached files ## Update cached files
- For update deposits and withdrawals events use `yarn update:events {chainId}` - To update deposit and withdrawal events use `yarn update:events {chainId} {optional: tokenOrEvent} {optional: tokenOrEvent}`
- For update encrypted notes use `yarn update:encrypted {chainId}` - To update encrypted notes use `yarn update:encrypted {chainId}`
- For update merkle tree use `yarn update:tree {chainId}` - To update merkle tree use `yarn update:tree {chainId}`
#### NOTE! #### NOTE!
After update cached files do not forget to use `yarn update:zip` After updating cached files do not forget to use `yarn update:zip`.
### Example for Ethereum Mainnet: ### Example for Ethereum Mainnet:
``` You may set in [`networkConfig.js`](./networkConfig.js) the `blockSyncInterval` (def: 10_000) to the maximum value allowed by your RPC provider. Command usage follows below.
yarn update:events 1
yarn update:encrypted 1
yarn update:tree 1
```bash
# Updating events with just the required chain id parameter
yarn update:events 1
# Updating events for only one token across all instances on that network
yarn update:events 1 dai
# Updating events for only one event on only some network
yarn update:events 1 deposit
# Both
yarn update:events 1 dai deposit
# Updating encrypted notes for some chain id
yarn update:encrypted 1
# Updating trees for some chain id
yarn update:tree 1
# Finally zips must be updated
yarn update:zip yarn update:zip
``` ```
### Example for Binance Smart Chain: ### Example for Binance Smart Chain:
``` ```bash
yarn update:events 56 yarn update:events 56
yarn update:events 56 bnb
yarn update:events 56 bnb deposit
yarn update:encrypted 56 yarn update:encrypted 56
yarn update:tree 56
yarn update:zip yarn update:zip
``` ```

@ -1,4 +1,5 @@
export const enabledChains = ['1', '10', '56', '100', '137', '42161'] export const blockSyncInterval = 10000
export const enabledChains = ['1', '10', '56', '100', '137', '43114', '42161']
export const chainsWithEncryptedNotes = ['1', '5', '56', '100', '137'] export const chainsWithEncryptedNotes = ['1', '5', '56', '100', '137']
export default { export default {
netId1: { netId1: {

@ -2,7 +2,7 @@ import fs from 'fs'
import zlib from 'zlib' import zlib from 'zlib'
import Web3 from 'web3' import Web3 from 'web3'
import networkConfig from '../../networkConfig' import networkConfig, { blockSyncInterval } from '../../networkConfig'
export function download({ name, directory }) { export function download({ name, directory }) {
const path = `${directory}${name}.gz`.toLowerCase() const path = `${directory}${name}.gz`.toLowerCase()
@ -53,7 +53,7 @@ export async function getPastEvents({ type, fromBlock, netId, events, contractAt
const blockDifference = Math.ceil(blockNumberBuffer - fromBlock) const blockDifference = Math.ceil(blockNumberBuffer - fromBlock)
// eth_logs and eth_filter are restricted > 10,000 block queries // eth_logs and eth_filter are restricted > 10,000 block queries
const blockRange = 10000 const blockRange = blockSyncInterval ? blockSyncInterval : 10_000
let chunksCount = blockDifference === 0 ? 1 : Math.ceil(blockDifference / blockRange) let chunksCount = blockDifference === 0 ? 1 : Math.ceil(blockDifference / blockRange)
const chunkSize = Math.ceil(blockDifference / chunksCount) const chunkSize = Math.ceil(blockDifference / chunksCount)