From 19c687c9d2f199a27dff312e8075231b337ffc17 Mon Sep 17 00:00:00 2001 From: AlienTornadosaurusHex <> Date: Sat, 10 Jun 2023 20:27:32 +0000 Subject: [PATCH] 0.0.13-alpha Signed-off-by: AlienTornadosaurusHex <> --- .yarn/versions/0aceb0c8.yml | 9 + .yarnrc.yml | 2 + @tornado/sdk-chain/package.json | 2 +- @tornado/sdk-chain/src/deth/TornadoRouter.ts | 508 ++ .../deth/factories/TornadoRouter__factory.ts | 362 + .../sdk-chain/src/deth/factories/index.ts | 1 + @tornado/sdk-chain/src/deth/index.ts | 2 + @tornado/sdk-chain/src/index.ts | 26 +- @tornado/sdk-core/package.json | 2 +- @tornado/sdk-core/src/deth/TornadoRouter.ts | 508 ++ .../deth/factories/TornadoRouter__factory.ts | 362 + @tornado/sdk-core/src/deth/factories/index.ts | 1 + @tornado/sdk-core/src/deth/index.ts | 2 + @tornado/sdk-core/src/index.ts | 91 +- @tornado/sdk-crypto/package.json | 2 +- @tornado/sdk-crypto/src/index.ts | 4 +- @tornado/sdk-data/package.json | 2 +- .../resources/onchain/instanceAddresses.json | 5 + @tornado/sdk-registry/package.json | 2 +- .../sdk-registry/src/deth/TornadoRouter.ts | 605 ++ .../deth/factories/TornadoRouter__factory.ts | 370 + .../sdk-registry/src/deth/factories/index.ts | 1 + @tornado/sdk-registry/src/deth/index.ts | 2 + @tornado/sdk-utils/package.json | 2 +- @tornado/sdk-web/package.json | 2 +- @tornado/sdk/package.json | 2 +- HISTORY.md | 8 +- README.md | 16 +- abis/RelayerRegistry.json | 2 - abis/TornadoRouter.json | 6528 +++++++++++++++++ docs/api/assets/highlight.css | 8 +- docs/api/assets/search.js | 2 +- docs/api/classes/Core.html | 155 +- docs/api/classes/Data.Cache.Base.html | 1 + docs/api/classes/Data.Cache.Syncable.html | 1 + docs/api/classes/Data.Docs.Base.html | 1 + docs/api/classes/Data.Docs.Deposit.html | 1 + docs/api/classes/Data.Docs.Invoice.html | 1 + docs/api/classes/Data.Docs.Note.html | 1 + docs/api/classes/Data.Docs.Relayer.html | 1 + docs/api/classes/Data.Docs.Withdrawal.html | 1 + docs/api/classes/DepositCache.html | 9 +- docs/api/classes/Network.Chain.html | 1 + docs/api/classes/Network.Synchronizer.html | 59 +- .../Utils.AsyncUtils.PromisePooler.html | 1 + .../classes/Utils.AsyncUtils.SimpleMutex.html | 1 + docs/api/classes/Web.Relayer.html | 1 + docs/api/classes/Web.TorProvider.html | 1 + docs/api/classes/WithdrawalCache.html | 9 +- .../Crypto.Primitives.buildMerkleTree.html | 1 + .../Crypto.Primitives.calcDepositProofs.html | 1 + .../Crypto.Primitives.calcPedersenHash.html | 1 + .../Crypto.Primitives.createDeposit.html | 1 + .../Crypto.Primitives.createNote.html | 1 + .../Crypto.Primitives.parseNote.html | 1 + .../Crypto.Setup.getDefaultHash.html | 1 + .../functions/Crypto.Setup.getGroth16.html | 1 + .../functions/Crypto.Setup.getProvingKey.html | 1 + .../Crypto.Setup.getTornadoCircuit.html | 1 + .../Crypto.Setup.getZeroElement.html | 1 + .../Crypto.Setup.terminateGroth16.html | 1 + .../functions/Data.Files.cacheDirExists.html | 1 + .../functions/Data.Files.getCachePath.html | 1 + .../functions/Data.Files.getModulesPath.html | 1 + .../functions/Data.Files.getResourcePath.html | 1 + docs/api/functions/Data.Files.gunzipSync.html | 1 + docs/api/functions/Data.Files.gzipSync.html | 1 + docs/api/functions/Data.Files.loadRaw.html | 1 + .../api/functions/Data.Files.loadRawSync.html | 1 + .../functions/Data.Files.makeCacheDir.html | 1 + docs/api/functions/Data.Files.parentPath.html | 1 + .../functions/Data.Files.stripExtensions.html | 1 + docs/api/functions/Data.Files.wipeCache.html | 1 + docs/api/functions/Data.Files.writeRaw.html | 1 + .../functions/Data.Files.writeRawSync.html | 1 + docs/api/functions/Data.Json.getError.html | 1 + docs/api/functions/Data.Json.getValue.html | 1 + docs/api/functions/Data.Json.load.html | 1 + docs/api/functions/Data.Json.loadMap.html | 1 + docs/api/functions/Data.Json.loadSync.html | 1 + docs/api/functions/Data.Json.throwError.html | 1 + docs/api/functions/Data.Json.toMap.html | 1 + .../Data.Offchain.getClassicSubgraphURL.html | 1 + ...ta.Offchain.getClassicSubgraphURLSync.html | 1 + .../Data.Offchain.getUncensoredRpcURL.html | 1 + ...Data.Offchain.getUncensoredRpcURLSync.html | 1 + .../Data.Onchain.getClassicInstanceData.html | 1 + ...ta.Onchain.getClassicInstanceDataSync.html | 1 + .../Data.Onchain.getInstanceAddress.html | 1 + .../Data.Onchain.getInstanceAddressSync.html | 1 + .../Data.Onchain.getInstanceAddresses.html | 1 + ...Data.Onchain.getInstanceAddressesSync.html | 1 + ...ata.Onchain.getInstanceDeployBlockNum.html | 1 + ...Onchain.getInstanceDeployBlockNumSync.html | 1 + ...ta.Onchain.getInstanceDeployBlockNums.html | 1 + ...nchain.getInstanceDeployBlockNumsSync.html | 1 + .../Data.Onchain.getInstanceLookupKeys.html | 1 + ...ata.Onchain.getInstanceLookupKeysSync.html | 1 + .../Data.Onchain.getMulticall3Address.html | 1 + ...Data.Onchain.getMulticall3AddressSync.html | 1 + .../Data.Onchain.getMulticallAddress.html | 1 + .../Data.Onchain.getMulticallAddressSync.html | 1 + .../Data.Onchain.getNetworkSymbol.html | 1 + .../Data.Onchain.getNetworkSymbolSync.html | 1 + ...ata.Onchain.getPathstringBasedContent.html | 1 + ...Onchain.getPathstringBasedContentSync.html | 1 + .../Data.Onchain.getProxyAddress.html | 1 + .../Data.Onchain.getProxyAddressSync.html | 1 + .../Data.Onchain.getRegistryAddress.html | 1 + .../Data.Onchain.getRegistryAddressSync.html | 1 + ...ata.Onchain.getRegistryDeployBlockNum.html | 1 + ...Onchain.getRegistryDeployBlockNumSync.html | 1 + .../Data.Onchain.getTokenAddress.html | 1 + .../Data.Onchain.getTokenAddressSync.html | 1 + .../Data.Onchain.getTokenDecimals.html | 1 + .../Data.Onchain.getTokenDecimalsSync.html | 1 + .../Network.Contracts.getInstance.html | 3 +- .../functions/Network.Contracts.getProxy.html | 1 + .../Network.Contracts.getRegistry.html | 3 +- .../Network.Contracts.getRouter.html | 312 + .../functions/Network.Contracts.getToken.html | 3 +- .../Network.Contracts.getTornToken.html | 3 +- .../functions/Network.syncErrorHandler.html | 3 +- .../functions/Utils.AsyncUtils.timeout.html | 1 + .../Utils.ErrorUtils.ensureError.html | 1 + .../functions/Utils.ErrorUtils.getError.html | 1 + .../functions/Utils.HexUtils.bigIntToHex.html | 1 + .../functions/Utils.HexUtils.bufferToHex.html | 1 + .../functions/Utils.HexUtils.numberToHex.html | 1 + .../Utils.HexUtils.prepareAddress.html | 1 + .../Utils.NumberUtils.getRandomFromRange.html | 1 + .../Utils.NumberUtils.randomBigInteger.html | 1 + .../functions/Utils.ObjectUtils.exists.html | 1 + .../functions/Utils.ObjectUtils.populate.html | 1 + .../api/functions/Utils.ObjectUtils.swap.html | 1 + docs/api/index.html | 3 +- .../Crypto.InputFor.BuildMerkleTree.html | 1 + .../Crypto.InputFor.CreateDeposit.html | 1 + .../Crypto.InputFor.DepositProof.html | 1 + .../Crypto.InputFor.PedersenHash.html | 1 + .../Crypto.OutputOf.CreateDeposit.html | 1 + .../Crypto.OutputOf.Groth16Proof.html | 1 + .../Crypto.OutputOf.MerkleProof.html | 1 + docs/api/interfaces/Data.ClassicInstance.html | 1 + .../interfaces/Data.Keys.InstanceLookup.html | 1 + docs/api/interfaces/Data.Options.Cache.html | 1 + .../interfaces/Data.RelayerProperties.html | 1 + docs/api/interfaces/Data.TokenData.html | 1 + docs/api/interfaces/Data.TornadoInstance.html | 1 + docs/api/interfaces/Network.Options.Sync.html | 1 + .../Options.Core.BuildDepositProof.html | 17 +- docs/api/interfaces/Options.Core.Deposit.html | 14 +- docs/api/interfaces/Transactions.Deposit.html | 9 +- .../interfaces/Web.ObfuscationOptions.html | 1 + docs/api/interfaces/Web.Options.Relayer.html | 1 + .../Web.WithdrawalRequestResult.html | 1 + docs/api/modules.html | 1 + docs/api/modules/Crypto.InputFor.html | 1 + docs/api/modules/Crypto.OutputOf.html | 1 + docs/api/modules/Crypto.Primitives.html | 1 + docs/api/modules/Crypto.Setup.html | 1 + docs/api/modules/Crypto.html | 1 + docs/api/modules/Data.Cache.html | 1 + docs/api/modules/Data.Constants.html | 1 + docs/api/modules/Data.Docs.html | 1 + docs/api/modules/Data.Files.html | 1 + docs/api/modules/Data.Json.html | 1 + docs/api/modules/Data.Keys.html | 1 + docs/api/modules/Data.Offchain.html | 1 + docs/api/modules/Data.Onchain.html | 1 + docs/api/modules/Data.Options.html | 1 + docs/api/modules/Data.html | 1 + docs/api/modules/Network.Contracts.html | 2 + docs/api/modules/Network.Options.html | 1 + docs/api/modules/Network.html | 1 + docs/api/modules/Options.Core.html | 1 + docs/api/modules/Options.html | 1 + docs/api/modules/Transactions.html | 3 +- docs/api/modules/Utils.AsyncUtils.html | 1 + docs/api/modules/Utils.ErrorUtils.html | 1 + docs/api/modules/Utils.HexUtils.html | 1 + docs/api/modules/Utils.NumberUtils.html | 1 + docs/api/modules/Utils.ObjectUtils.html | 1 + docs/api/modules/Utils.html | 1 + docs/api/modules/Web.Options.html | 1 + docs/api/modules/Web.html | 1 + docs/api/types/Crypto.DepositInfo.html | 1 + docs/api/types/Crypto.DepositProof.html | 1 + docs/api/types/Crypto.InputFor.Groth16.html | 1 + docs/api/types/Crypto.MerkleProof.html | 1 + .../types/Crypto.OutputOf.PedersenHash.html | 1 + docs/api/types/Crypto.bigInt.html | 1 + docs/api/types/Data.Files.PathGetter.html | 1 + docs/api/types/Network.Options.Cache.html | 1 + docs/api/types/Network.TornadoContracts.html | 3 +- docs/api/types/Options.Cache.html | 3 +- docs/api/types/Options.Core.Invoice.html | 3 +- docs/api/types/Options.Sync.html | 3 +- docs/api/types/Transactions.Invoice.html | 3 +- docs/api/types/Utils.AsyncUtils.Callback.html | 1 + .../types/Utils.AsyncUtils.ErrorHandler.html | 1 + docs/api/types/Web.RelayerOptions.html | 1 + .../Data.Constants.MERKLE_TREE_HEIGHT.html | 1 + docs/api/variables/Web.RegularHttpClient.html | 1 + docs/api/variables/Web.TorHttpClient.html | 1 + package.json | 4 +- test/core.test.ts | 10 +- test/deth/TornadoRouter.ts | 605 ++ test/deth/factories/TornadoRouter__factory.ts | 370 + test/deth/factories/index.ts | 1 + test/deth/index.ts | 2 + 211 files changed, 10991 insertions(+), 216 deletions(-) create mode 100644 .yarn/versions/0aceb0c8.yml create mode 100644 @tornado/sdk-chain/src/deth/TornadoRouter.ts create mode 100644 @tornado/sdk-chain/src/deth/factories/TornadoRouter__factory.ts create mode 100644 @tornado/sdk-core/src/deth/TornadoRouter.ts create mode 100644 @tornado/sdk-core/src/deth/factories/TornadoRouter__factory.ts create mode 100644 @tornado/sdk-registry/src/deth/TornadoRouter.ts create mode 100644 @tornado/sdk-registry/src/deth/factories/TornadoRouter__factory.ts create mode 100644 abis/TornadoRouter.json create mode 100644 docs/api/functions/Network.Contracts.getRouter.html create mode 100644 test/deth/TornadoRouter.ts create mode 100644 test/deth/factories/TornadoRouter__factory.ts diff --git a/.yarn/versions/0aceb0c8.yml b/.yarn/versions/0aceb0c8.yml new file mode 100644 index 0000000..bb61f1b --- /dev/null +++ b/.yarn/versions/0aceb0c8.yml @@ -0,0 +1,9 @@ +undecided: + - "@tornado/sdk-monorepo" + - "@tornado/sdk" + - "@tornado/sdk-chain" + - "@tornado/sdk-core" + - "@tornado/sdk-crypto" + - "@tornado/sdk-data" + - "@tornado/sdk-registry" + - "@tornado/sdk-utils" diff --git a/.yarnrc.yml b/.yarnrc.yml index cdd517b..8671865 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -18,3 +18,5 @@ plugins: spec: "@yarnpkg/plugin-workspace-tools" - path: .yarn/plugins/@yarnpkg/plugin-version.cjs spec: "@yarnpkg/plugin-version" + +httpTimeout: 1000000 \ No newline at end of file diff --git a/@tornado/sdk-chain/package.json b/@tornado/sdk-chain/package.json index 9bf6a95..3b1c6ae 100644 --- a/@tornado/sdk-chain/package.json +++ b/@tornado/sdk-chain/package.json @@ -13,7 +13,7 @@ "crypto", "zk" ], - "version": "0.0.12-alpha", + "version": "0.0.13-alpha", "engines": { "node": "^18" }, diff --git a/@tornado/sdk-chain/src/deth/TornadoRouter.ts b/@tornado/sdk-chain/src/deth/TornadoRouter.ts new file mode 100644 index 0000000..edff62f --- /dev/null +++ b/@tornado/sdk-chain/src/deth/TornadoRouter.ts @@ -0,0 +1,508 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PayableOverrides, + PopulatedTransaction, + Signer, + utils +} from 'ethers' +import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi' +import type { Listener, Provider } from '@ethersproject/providers' +import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common' + +export interface TornadoRouterInterface extends utils.Interface { + functions: { + 'approveTokenForInstance(address,address,uint256)': FunctionFragment + 'backupNotes(bytes[])': FunctionFragment + 'deposit(address,bytes32,bytes)': FunctionFragment + 'governanceProxyAddress()': FunctionFragment + 'initialize(address,address)': FunctionFragment + 'instanceRegistry()': FunctionFragment + 'relayerRegistry()': FunctionFragment + 'rescueTokens(address,address,uint256)': FunctionFragment + 'setInstanceRegistry(address)': FunctionFragment + 'setRelayerRegistry(address)': FunctionFragment + 'version()': FunctionFragment + 'withdraw(address,bytes,bytes32,bytes32,address,address,uint256,uint256)': FunctionFragment + } + + getFunction( + nameOrSignatureOrTopic: + | 'approveTokenForInstance' + | 'backupNotes' + | 'deposit' + | 'governanceProxyAddress' + | 'initialize' + | 'instanceRegistry' + | 'relayerRegistry' + | 'rescueTokens' + | 'setInstanceRegistry' + | 'setRelayerRegistry' + | 'version' + | 'withdraw' + ): FunctionFragment + + encodeFunctionData( + functionFragment: 'approveTokenForInstance', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue] + ): string + encodeFunctionData(functionFragment: 'backupNotes', values: [PromiseOrValue[]]): string + encodeFunctionData( + functionFragment: 'deposit', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue] + ): string + encodeFunctionData(functionFragment: 'governanceProxyAddress', values?: undefined): string + encodeFunctionData( + functionFragment: 'initialize', + values: [PromiseOrValue, PromiseOrValue] + ): string + encodeFunctionData(functionFragment: 'instanceRegistry', values?: undefined): string + encodeFunctionData(functionFragment: 'relayerRegistry', values?: undefined): string + encodeFunctionData( + functionFragment: 'rescueTokens', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue] + ): string + encodeFunctionData(functionFragment: 'setInstanceRegistry', values: [PromiseOrValue]): string + encodeFunctionData(functionFragment: 'setRelayerRegistry', values: [PromiseOrValue]): string + encodeFunctionData(functionFragment: 'version', values?: undefined): string + encodeFunctionData( + functionFragment: 'withdraw', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string + + decodeFunctionResult(functionFragment: 'approveTokenForInstance', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'backupNotes', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'governanceProxyAddress', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'instanceRegistry', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'relayerRegistry', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'rescueTokens', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'setInstanceRegistry', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'setRelayerRegistry', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'version', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result + + events: { + 'EncryptedNote(address,bytes)': EventFragment + 'InstanceRegistryUpdated(address)': EventFragment + 'RelayerRegistryUpdated(address)': EventFragment + 'TokenApproved(address,uint256)': EventFragment + } + + getEvent(nameOrSignatureOrTopic: 'EncryptedNote'): EventFragment + getEvent(nameOrSignatureOrTopic: 'InstanceRegistryUpdated'): EventFragment + getEvent(nameOrSignatureOrTopic: 'RelayerRegistryUpdated'): EventFragment + getEvent(nameOrSignatureOrTopic: 'TokenApproved'): EventFragment +} + +export interface EncryptedNoteEventObject { + sender: string + encryptedNote: string +} +export type EncryptedNoteEvent = TypedEvent<[string, string], EncryptedNoteEventObject> + +export type EncryptedNoteEventFilter = TypedEventFilter + +export interface InstanceRegistryUpdatedEventObject { + newInstanceRegistryProxyAddress: string +} +export type InstanceRegistryUpdatedEvent = TypedEvent<[string], InstanceRegistryUpdatedEventObject> + +export type InstanceRegistryUpdatedEventFilter = TypedEventFilter + +export interface RelayerRegistryUpdatedEventObject { + newRelayerRegistryProxyAddress: string +} +export type RelayerRegistryUpdatedEvent = TypedEvent<[string], RelayerRegistryUpdatedEventObject> + +export type RelayerRegistryUpdatedEventFilter = TypedEventFilter + +export interface TokenApprovedEventObject { + spender: string + amount: BigNumber +} +export type TokenApprovedEvent = TypedEvent<[string, BigNumber], TokenApprovedEventObject> + +export type TokenApprovedEventFilter = TypedEventFilter + +export interface TornadoRouter extends BaseContract { + contractName: 'TornadoRouter' + + connect(signerOrProvider: Signer | Provider | string): this + attach(addressOrName: string): this + deployed(): Promise + + interface: TornadoRouterInterface + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise> + + listeners(eventFilter?: TypedEventFilter): Array> + listeners(eventName?: string): Array + removeAllListeners(eventFilter: TypedEventFilter): this + removeAllListeners(eventName?: string): this + off: OnEvent + on: OnEvent + once: OnEvent + removeListener: OnEvent + + functions: { + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise + + governanceProxyAddress(overrides?: CallOverrides): Promise<[string]> + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + instanceRegistry(overrides?: CallOverrides): Promise<[string]> + + relayerRegistry(overrides?: CallOverrides): Promise<[string]> + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + version(overrides?: CallOverrides): Promise<[string]> + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise + } + + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise + + governanceProxyAddress(overrides?: CallOverrides): Promise + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + instanceRegistry(overrides?: CallOverrides): Promise + + relayerRegistry(overrides?: CallOverrides): Promise + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + version(overrides?: CallOverrides): Promise + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise + + callStatic: { + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: CallOverrides + ): Promise + + backupNotes(_encryptedNotes: PromiseOrValue[], overrides?: CallOverrides): Promise + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: CallOverrides + ): Promise + + governanceProxyAddress(overrides?: CallOverrides): Promise + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise + + instanceRegistry(overrides?: CallOverrides): Promise + + relayerRegistry(overrides?: CallOverrides): Promise + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: CallOverrides + ): Promise + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise + + version(overrides?: CallOverrides): Promise + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: CallOverrides + ): Promise + } + + filters: { + 'EncryptedNote(address,bytes)'( + sender?: PromiseOrValue | null, + encryptedNote?: null + ): EncryptedNoteEventFilter + EncryptedNote(sender?: PromiseOrValue | null, encryptedNote?: null): EncryptedNoteEventFilter + + 'InstanceRegistryUpdated(address)'( + newInstanceRegistryProxyAddress?: null + ): InstanceRegistryUpdatedEventFilter + InstanceRegistryUpdated(newInstanceRegistryProxyAddress?: null): InstanceRegistryUpdatedEventFilter + + 'RelayerRegistryUpdated(address)'( + newRelayerRegistryProxyAddress?: null + ): RelayerRegistryUpdatedEventFilter + RelayerRegistryUpdated(newRelayerRegistryProxyAddress?: null): RelayerRegistryUpdatedEventFilter + + 'TokenApproved(address,uint256)'( + spender?: PromiseOrValue | null, + amount?: null + ): TokenApprovedEventFilter + TokenApproved(spender?: PromiseOrValue | null, amount?: null): TokenApprovedEventFilter + } + + estimateGas: { + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise + + governanceProxyAddress(overrides?: CallOverrides): Promise + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + instanceRegistry(overrides?: CallOverrides): Promise + + relayerRegistry(overrides?: CallOverrides): Promise + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + version(overrides?: CallOverrides): Promise + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise + } + + populateTransaction: { + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise + + governanceProxyAddress(overrides?: CallOverrides): Promise + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + instanceRegistry(overrides?: CallOverrides): Promise + + relayerRegistry(overrides?: CallOverrides): Promise + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + version(overrides?: CallOverrides): Promise + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise + } +} diff --git a/@tornado/sdk-chain/src/deth/factories/TornadoRouter__factory.ts b/@tornado/sdk-chain/src/deth/factories/TornadoRouter__factory.ts new file mode 100644 index 0000000..818f3f2 --- /dev/null +++ b/@tornado/sdk-chain/src/deth/factories/TornadoRouter__factory.ts @@ -0,0 +1,362 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { Signer, utils, Contract, ContractFactory, Overrides } from 'ethers' +import type { Provider, TransactionRequest } from '@ethersproject/providers' +import type { PromiseOrValue } from '../common' +import type { TornadoRouter, TornadoRouterInterface } from '../TornadoRouter' + +const _abi = [ + { + inputs: [ + { + internalType: 'address', + name: '_governanceProxyAddress', + type: 'address' + } + ], + stateMutability: 'nonpayable', + type: 'constructor' + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'sender', + type: 'address' + }, + { + indexed: false, + internalType: 'bytes', + name: 'encryptedNote', + type: 'bytes' + } + ], + name: 'EncryptedNote', + type: 'event' + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'newInstanceRegistryProxyAddress', + type: 'address' + } + ], + name: 'InstanceRegistryUpdated', + type: 'event' + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'newRelayerRegistryProxyAddress', + type: 'address' + } + ], + name: 'RelayerRegistryUpdated', + type: 'event' + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'spender', + type: 'address' + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256' + } + ], + name: 'TokenApproved', + type: 'event' + }, + { + inputs: [ + { + internalType: 'contract IERC20', + name: '_token', + type: 'address' + }, + { + internalType: 'address', + name: '_spender', + type: 'address' + }, + { + internalType: 'uint256', + name: '_amount', + type: 'uint256' + } + ], + name: 'approveTokenForInstance', + outputs: [], + stateMutability: 'nonpayable', + type: 'function' + }, + { + inputs: [ + { + internalType: 'bytes[]', + name: '_encryptedNotes', + type: 'bytes[]' + } + ], + name: 'backupNotes', + outputs: [], + stateMutability: 'nonpayable', + type: 'function' + }, + { + inputs: [ + { + internalType: 'contract ITornadoInstance', + name: '_tornado', + type: 'address' + }, + { + internalType: 'bytes32', + name: '_commitment', + type: 'bytes32' + }, + { + internalType: 'bytes', + name: '_encryptedNote', + type: 'bytes' + } + ], + name: 'deposit', + outputs: [], + stateMutability: 'payable', + type: 'function' + }, + { + inputs: [], + name: 'governanceProxyAddress', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address' + } + ], + stateMutability: 'view', + type: 'function' + }, + { + inputs: [ + { + internalType: 'address', + name: '_instanceRegistryAddress', + type: 'address' + }, + { + internalType: 'address', + name: '_relayerRegistryAddress', + type: 'address' + } + ], + name: 'initialize', + outputs: [], + stateMutability: 'nonpayable', + type: 'function' + }, + { + inputs: [], + name: 'instanceRegistry', + outputs: [ + { + internalType: 'contract InstanceRegistry', + name: '', + type: 'address' + } + ], + stateMutability: 'view', + type: 'function' + }, + { + inputs: [], + name: 'relayerRegistry', + outputs: [ + { + internalType: 'contract RelayerRegistry', + name: '', + type: 'address' + } + ], + stateMutability: 'view', + type: 'function' + }, + { + inputs: [ + { + internalType: 'contract IERC20', + name: '_token', + type: 'address' + }, + { + internalType: 'address payable', + name: '_to', + type: 'address' + }, + { + internalType: 'uint256', + name: '_amount', + type: 'uint256' + } + ], + name: 'rescueTokens', + outputs: [], + stateMutability: 'nonpayable', + type: 'function' + }, + { + inputs: [ + { + internalType: 'address', + name: '_newInstanceRegistryProxyAddress', + type: 'address' + } + ], + name: 'setInstanceRegistry', + outputs: [], + stateMutability: 'nonpayable', + type: 'function' + }, + { + inputs: [ + { + internalType: 'address', + name: '_newRelayerRegistryProxyAddress', + type: 'address' + } + ], + name: 'setRelayerRegistry', + outputs: [], + stateMutability: 'nonpayable', + type: 'function' + }, + { + inputs: [], + name: 'version', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string' + } + ], + stateMutability: 'pure', + type: 'function' + }, + { + inputs: [ + { + internalType: 'contract ITornadoInstance', + name: '_tornado', + type: 'address' + }, + { + internalType: 'bytes', + name: '_proof', + type: 'bytes' + }, + { + internalType: 'bytes32', + name: '_root', + type: 'bytes32' + }, + { + internalType: 'bytes32', + name: '_nullifierHash', + type: 'bytes32' + }, + { + internalType: 'address payable', + name: '_recipient', + type: 'address' + }, + { + internalType: 'address payable', + name: '_relayer', + type: 'address' + }, + { + internalType: 'uint256', + name: '_fee', + type: 'uint256' + }, + { + internalType: 'uint256', + name: '_refund', + type: 'uint256' + } + ], + name: 'withdraw', + outputs: [], + stateMutability: 'payable', + type: 'function' + } +] as const + +const _bytecode = + '0x60a060405234801561001057600080fd5b506040516115b03803806115b083398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c61150d6100a3600039806103f1528061042d5280610647528061086d5280610907525061150d6000f3fe6080604052600436106100975760003560e01c806313d98d131461009c57806336a3874b146100b15780634655478f146100dc57806347ff589d146100f1578063485cc955146101065780634b704c971461012657806354fd4d50146101465780636485ba2a1461016857806364cb281114610188578063b438689f146101a8578063baaa2169146101bb578063cea9d26f146101db575b600080fd5b6100af6100aa366004610f3f565b6101fb565b005b3480156100bd57600080fd5b506100c66103da565b6040516100d39190611096565b60405180910390f35b3480156100e857600080fd5b506100c66103ef565b3480156100fd57600080fd5b506100c6610413565b34801561011257600080fd5b506100af610121366004610dc0565b610422565b34801561013257600080fd5b506100af610141366004610ec2565b610530565b34801561015257600080fd5b5061015b6105ba565b6040516100d39190611193565b34801561017457600080fd5b506100af610183366004610df8565b6105e5565b34801561019457600080fd5b506100af6101a3366004610da4565b61063c565b6100af6101b6366004610f98565b6106da565b3480156101c757600080fd5b506100af6101d6366004610da4565b610862565b3480156101e757600080fd5b506100af6101f6366004610e82565b6108fc565b60008054604051636695ad4960e11b815282918291620100009091046001600160a01b03169063cd2b5a9290610235908a90600401611096565b60806040518083038186803b15801561024d57600080fd5b505afa158015610261573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102859190610ed6565b93509350509250806102b25760405162461bcd60e51b81526004016102a9906111fd565b60405180910390fd5b8115610340576103403330896001600160a01b0316638bca6d166040518163ffffffff1660e01b815260040160206040518083038186803b1580156102f657600080fd5b505afa15801561030a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032e9190611038565b6001600160a01b038716929190610a90565b60405163b214faa560e01b81526001600160a01b0388169063b214faa590349061036e908a90600401611124565b6000604051808303818588803b15801561038757600080fd5b505af115801561039b573d6000803e3d6000fd5b5050505050336001600160a01b03166000805160206114b883398151915286866040516103c992919061112d565b60405180910390a250505050505050565b6000546201000090046001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b031681565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461046a5760405162461bcd60e51b81526004016102a9906111c6565b600054610100900460ff16806104835750610483610aee565b80610491575060005460ff16155b6104ad5760405162461bcd60e51b81526004016102a990611240565b600054610100900460ff161580156104d8576000805460ff1961ff0019909116610100171660011790555b6000805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155600180546001600160a01b031916918416919091179055801561052b576000805461ff00191690555b505050565b6000546201000090046001600160a01b031633146105605760405162461bcd60e51b81526004016102a9906113de565b6105746001600160a01b0384168383610af4565b816001600160a01b03167fab1e93ce08cc196e636fe318c052f82163b40e499a90a0fdb38912ecd5beae11826040516105ad9190611124565b60405180910390a2505050565b6040805180820190915260118152703b1916b7b930b1b63296b6b0b730b3b2b960791b602082015290565b60005b8181101561052b57336000805160206114b883398151915284848481811061060c57fe5b905060200281019061061e9190611421565b60405161062c92919061112d565b60405180910390a26001016105e8565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106845760405162461bcd60e51b81526004016102a9906111c6565b600180546001600160a01b0319166001600160a01b0383161790556040517fd3c0577a88b56268da0350a01cb491fb15be69982729d9cb066a0603d1fc54b8906106cf908390611096565b60405180910390a150565b60008054604051636695ad4960e11b8152620100009091046001600160a01b03169063cd2b5a9290610710908d90600401611096565b60806040518083038186803b15801561072857600080fd5b505afa15801561073c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107609190610ed6565b9350505050806107825760405162461bcd60e51b81526004016102a9906111fd565b600154604051631168473b60e21b81526001600160a01b03909116906345a11cec906107b690339088908f906004016110aa565b600060405180830381600087803b1580156107d057600080fd5b505af11580156107e4573d6000803e3d6000fd5b50506040516310d056db60e11b81526001600160a01b038d1692506321a0adb691503490610824908d908d908d908d908d908d908d908d90600401611141565b6000604051808303818588803b15801561083d57600080fd5b505af1158015610851573d6000803e3d6000fd5b505050505050505050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108aa5760405162461bcd60e51b81526004016102a9906111c6565b6000805462010000600160b01b031916620100006001600160a01b038416021790556040517fcea779b12676b53bc3062b0064b8a14145a271c42db27627a1895a67324f64cb906106cf908390611096565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109445760405162461bcd60e51b81526004016102a9906111c6565b6001600160a01b03821661096a5760405162461bcd60e51b81526004016102a9906112c5565b6001600160a01b0383166109c6574760006109858284610bb7565b6040519091506001600160a01b0385169082156108fc029083906000818181858888f193505050501580156109be573d6000803e3d6000fd5b50505061052b565b6040516370a0823160e01b81526000906001600160a01b038516906370a08231906109f5903090600401611096565b60206040518083038186803b158015610a0d57600080fd5b505afa158015610a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a459190611038565b90506000610a538284610bb7565b905060008111610a755760405162461bcd60e51b81526004016102a990611351565b610a896001600160a01b0386168583610bcf565b5050505050565b610ae8846323b872dd60e01b858585604051602401610ab1939291906110e7565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610bee565b50505050565b303b1590565b801580610b7c5750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e90610b2a90309086906004016110cd565b60206040518083038186803b158015610b4257600080fd5b505afa158015610b56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7a9190611038565b155b610b985760405162461bcd60e51b81526004016102a990611388565b61052b8363095ea7b360e01b8484604051602401610ab192919061110b565b6000818310610bc65781610bc8565b825b9392505050565b61052b8363a9059cbb60e01b8484604051602401610ab192919061110b565b6060610c43826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610c7d9092919063ffffffff16565b80519091501561052b5780806020019051810190610c619190610e66565b61052b5760405162461bcd60e51b81526004016102a990611307565b6060610c8c8484600085610c94565b949350505050565b6060610c9f85610d58565b610cbb5760405162461bcd60e51b81526004016102a99061128e565b60006060866001600160a01b03168587604051610cd8919061107a565b60006040518083038185875af1925050503d8060008114610d15576040519150601f19603f3d011682016040523d82523d6000602084013e610d1a565b606091505b50915091508115610d2e579150610c8c9050565b805115610d3e5780518082602001fd5b8360405162461bcd60e51b81526004016102a99190611193565b3b151590565b60008083601f840112610d6f578182fd5b5081356001600160401b03811115610d85578182fd5b602083019150836020828501011115610d9d57600080fd5b9250929050565b600060208284031215610db5578081fd5b8135610bc881611491565b60008060408385031215610dd2578081fd5b8235610ddd81611491565b91506020830135610ded81611491565b809150509250929050565b60008060208385031215610e0a578182fd5b82356001600160401b0380821115610e20578384fd5b818501915085601f830112610e33578384fd5b813581811115610e41578485fd5b8660208083028501011115610e54578485fd5b60209290920196919550909350505050565b600060208284031215610e77578081fd5b8151610bc8816114a9565b600080600060608486031215610e96578081fd5b8335610ea181611491565b92506020840135610eb181611491565b929592945050506040919091013590565b600080600060608486031215610e96578283fd5b60008060008060808587031215610eeb578081fd5b8451610ef681611491565b60208601519094506001600160501b0381168114610f12578182fd5b6040860151909350610f23816114a9565b6060860151909250610f34816114a9565b939692955090935050565b60008060008060608587031215610f54578384fd5b8435610f5f81611491565b93506020850135925060408501356001600160401b03811115610f80578283fd5b610f8c87828801610d5e565b95989497509550505050565b60008060008060008060008060006101008a8c031215610fb6578485fd5b8935610fc181611491565b985060208a01356001600160401b03811115610fdb578586fd5b610fe78c828d01610d5e565b90995097505060408a0135955060608a0135945060808a013561100981611491565b935060a08a013561101981611491565b8093505060c08a0135915060e08a013590509295985092959850929598565b600060208284031215611049578081fd5b5051919050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000825161108c818460208701611465565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b90815260200190565b600060208252610c8c602083018486611050565b600060e0825261115560e083018a8c611050565b60208301989098525060408101959095526001600160a01b03938416606086015291909216608084015260a083019190915260c09091015292915050565b60006020825282518060208401526111b2816040850160208701611465565b601f01601f19169190910160400192915050565b6020808252601d908201527f546f726e61646f526f757465723a206f6e6c79476f7665726e616e6365000000604082015260600190565b60208082526023908201527f546f726e61646f526f757465723a20696e7374616e6365206e6f7420656e61626040820152621b195960ea1b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526022908201527f544f524e3a2063616e206e6f742073656e6420746f207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601e908201527f544f524e3a20747279696e6720746f2073656e6420302062616c616e63650000604082015260600190565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606082015260800190565b60208082526023908201527f546f726e61646f526f757465723a206f6e6c79496e7374616e6365526567697360408201526274727960e81b606082015260800190565b6000808335601e19843603018112611437578283fd5b8301803591506001600160401b03821115611450578283fd5b602001915036819003821315610d9d57600080fd5b60005b83811015611480578181015183820152602001611468565b83811115610ae85750506000910152565b6001600160a01b03811681146114a657600080fd5b50565b80151581146114a657600080fdfefa28df43db3553771f7209dcef046f3bdfea15870ab625dcda30ac58b82b4008a2646970667358221220526b6f98f0226b043a554c9a0c6eb190a453d379dbf6d0b0804bec30140c148764736f6c634300060c0033' + +type TornadoRouterConstructorParams = [signer?: Signer] | ConstructorParameters + +const isSuperArgs = ( + xs: TornadoRouterConstructorParams +): xs is ConstructorParameters => xs.length > 1 + +export class TornadoRouter__factory extends ContractFactory { + constructor(...args: TornadoRouterConstructorParams) { + if (isSuperArgs(args)) { + super(...args) + } else { + super(_abi, _bytecode, args[0]) + } + this.contractName = 'TornadoRouter' + } + + override deploy( + _governanceProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise { + return super.deploy(_governanceProxyAddress, overrides || {}) as Promise + } + override getDeployTransaction( + _governanceProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): TransactionRequest { + return super.getDeployTransaction(_governanceProxyAddress, overrides || {}) + } + override attach(address: string): TornadoRouter { + return super.attach(address) as TornadoRouter + } + override connect(signer: Signer): TornadoRouter__factory { + return super.connect(signer) as TornadoRouter__factory + } + static readonly contractName: 'TornadoRouter' + + public readonly contractName: 'TornadoRouter' + + static readonly bytecode = _bytecode + static readonly abi = _abi + static createInterface(): TornadoRouterInterface { + return new utils.Interface(_abi) as TornadoRouterInterface + } + static connect(address: string, signerOrProvider: Signer | Provider): TornadoRouter { + return new Contract(address, _abi, signerOrProvider) as TornadoRouter + } +} diff --git a/@tornado/sdk-chain/src/deth/factories/index.ts b/@tornado/sdk-chain/src/deth/factories/index.ts index 03f8162..227ffe4 100644 --- a/@tornado/sdk-chain/src/deth/factories/index.ts +++ b/@tornado/sdk-chain/src/deth/factories/index.ts @@ -10,3 +10,4 @@ export { MulticallContract__factory } from './MulticallContract__factory' export { RelayerRegistry__factory } from './RelayerRegistry__factory' export { TornadoInstance__factory } from './TornadoInstance__factory' export { TornadoProxy__factory } from './TornadoProxy__factory' +export { TornadoRouter__factory } from './TornadoRouter__factory' diff --git a/@tornado/sdk-chain/src/deth/index.ts b/@tornado/sdk-chain/src/deth/index.ts index 947cf49..812231f 100644 --- a/@tornado/sdk-chain/src/deth/index.ts +++ b/@tornado/sdk-chain/src/deth/index.ts @@ -10,6 +10,7 @@ export type { MulticallContract } from './MulticallContract' export type { RelayerRegistry } from './RelayerRegistry' export type { TornadoInstance } from './TornadoInstance' export type { TornadoProxy } from './TornadoProxy' +export type { TornadoRouter } from './TornadoRouter' export * as factories from './factories' export { ERC20__factory } from './factories/ERC20__factory' export { ERC20Mock__factory } from './factories/ERC20Mock__factory' @@ -20,3 +21,4 @@ export { MulticallContract__factory } from './factories/MulticallContract__facto export { RelayerRegistry__factory } from './factories/RelayerRegistry__factory' export { TornadoInstance__factory } from './factories/TornadoInstance__factory' export { TornadoProxy__factory } from './factories/TornadoProxy__factory' +export { TornadoRouter__factory } from './factories/TornadoRouter__factory' diff --git a/@tornado/sdk-chain/src/index.ts b/@tornado/sdk-chain/src/index.ts index 7a202ea..62d0212 100644 --- a/@tornado/sdk-chain/src/index.ts +++ b/@tornado/sdk-chain/src/index.ts @@ -23,8 +23,10 @@ import { ETHTornado__factory, TornadoInstance, TornadoInstance__factory, - TornadoProxy__factory, + TornadoRouter, + TornadoRouter__factory, TornadoProxy, + TornadoProxy__factory, ERC20, ERC20__factory, RelayerRegistry, @@ -44,6 +46,7 @@ import { parseIndexableString } from 'pouchdb-collate' export type TornadoContracts = | TornadoInstance + | TornadoRouter | TornadoProxy | ETHTornado | ERC20Tornado @@ -203,6 +206,8 @@ export namespace Contracts { ): C { if (name == 'TornadoInstance') { return TornadoInstance__factory.connect(address, signerOrProvider) as C + } else if (name == 'TornadoRouter') { + return TornadoRouter__factory.connect(address, signerOrProvider) as C } else if (name == 'TornadoProxy') { return TornadoProxy__factory.connect(address, signerOrProvider) as C } else if (name == 'ETHTornado') { @@ -230,6 +235,17 @@ export namespace Contracts { return contractMap.get(`TornadoProxy${network}`) as TornadoProxy } + export function getRouter(network: string, signerOrProvider: Signer | Provider): TornadoRouter { + const key = `TornadoRouter${network}` + if (!contractMap.has(key)) { + contractMap.set( + key, + _getContract('TornadoRouter', Onchain.getProxyAddressSync(network), signerOrProvider) + ) + } + return contractMap.get(`TornadoRouter${network}`) as TornadoRouter + } + export function getRegistry(signerOrProvider: Signer | Provider, network?: string): RelayerRegistry { const key = `RelayerRegistry${network}` if (!contractMap.has(key)) @@ -315,9 +331,6 @@ export abstract class Synchronizer extends EventEmitter { _options.blockDelta = _options.blockDivisor ? Math.floor((_options.targetBlock - _options.startBlock) / _options.blockDivisor) : _options.blockDelta - - if (10_000 < _options.blockDelta) - throw ErrorUtils.getError('Synchronizer.sync: blockDelta must not be above 10,000!') } // Start synchronizing @@ -418,10 +431,7 @@ export abstract class Synchronizer extends EventEmitter { options.blockDelta ?? (options.blockDivisor ? Math.floor((options.targetBlock - options.startBlock) / options.blockDivisor) - : 10000) - - if (10_000 < options.blockDelta) - throw ErrorUtils.getError('Synchronizer._populateSyncOptions: blockDelta must not be above 10,000!') + : 1024) options.concurrencyLimit = options.concurrencyLimit ?? 8 diff --git a/@tornado/sdk-core/package.json b/@tornado/sdk-core/package.json index 1121a7f..eb34a2a 100644 --- a/@tornado/sdk-core/package.json +++ b/@tornado/sdk-core/package.json @@ -13,7 +13,7 @@ "crypto", "zk" ], - "version": "0.0.12-alpha", + "version": "0.0.13-alpha", "engines": { "node": "^18" }, diff --git a/@tornado/sdk-core/src/deth/TornadoRouter.ts b/@tornado/sdk-core/src/deth/TornadoRouter.ts new file mode 100644 index 0000000..edff62f --- /dev/null +++ b/@tornado/sdk-core/src/deth/TornadoRouter.ts @@ -0,0 +1,508 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PayableOverrides, + PopulatedTransaction, + Signer, + utils +} from 'ethers' +import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi' +import type { Listener, Provider } from '@ethersproject/providers' +import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common' + +export interface TornadoRouterInterface extends utils.Interface { + functions: { + 'approveTokenForInstance(address,address,uint256)': FunctionFragment + 'backupNotes(bytes[])': FunctionFragment + 'deposit(address,bytes32,bytes)': FunctionFragment + 'governanceProxyAddress()': FunctionFragment + 'initialize(address,address)': FunctionFragment + 'instanceRegistry()': FunctionFragment + 'relayerRegistry()': FunctionFragment + 'rescueTokens(address,address,uint256)': FunctionFragment + 'setInstanceRegistry(address)': FunctionFragment + 'setRelayerRegistry(address)': FunctionFragment + 'version()': FunctionFragment + 'withdraw(address,bytes,bytes32,bytes32,address,address,uint256,uint256)': FunctionFragment + } + + getFunction( + nameOrSignatureOrTopic: + | 'approveTokenForInstance' + | 'backupNotes' + | 'deposit' + | 'governanceProxyAddress' + | 'initialize' + | 'instanceRegistry' + | 'relayerRegistry' + | 'rescueTokens' + | 'setInstanceRegistry' + | 'setRelayerRegistry' + | 'version' + | 'withdraw' + ): FunctionFragment + + encodeFunctionData( + functionFragment: 'approveTokenForInstance', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue] + ): string + encodeFunctionData(functionFragment: 'backupNotes', values: [PromiseOrValue[]]): string + encodeFunctionData( + functionFragment: 'deposit', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue] + ): string + encodeFunctionData(functionFragment: 'governanceProxyAddress', values?: undefined): string + encodeFunctionData( + functionFragment: 'initialize', + values: [PromiseOrValue, PromiseOrValue] + ): string + encodeFunctionData(functionFragment: 'instanceRegistry', values?: undefined): string + encodeFunctionData(functionFragment: 'relayerRegistry', values?: undefined): string + encodeFunctionData( + functionFragment: 'rescueTokens', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue] + ): string + encodeFunctionData(functionFragment: 'setInstanceRegistry', values: [PromiseOrValue]): string + encodeFunctionData(functionFragment: 'setRelayerRegistry', values: [PromiseOrValue]): string + encodeFunctionData(functionFragment: 'version', values?: undefined): string + encodeFunctionData( + functionFragment: 'withdraw', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string + + decodeFunctionResult(functionFragment: 'approveTokenForInstance', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'backupNotes', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'governanceProxyAddress', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'instanceRegistry', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'relayerRegistry', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'rescueTokens', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'setInstanceRegistry', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'setRelayerRegistry', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'version', data: BytesLike): Result + decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result + + events: { + 'EncryptedNote(address,bytes)': EventFragment + 'InstanceRegistryUpdated(address)': EventFragment + 'RelayerRegistryUpdated(address)': EventFragment + 'TokenApproved(address,uint256)': EventFragment + } + + getEvent(nameOrSignatureOrTopic: 'EncryptedNote'): EventFragment + getEvent(nameOrSignatureOrTopic: 'InstanceRegistryUpdated'): EventFragment + getEvent(nameOrSignatureOrTopic: 'RelayerRegistryUpdated'): EventFragment + getEvent(nameOrSignatureOrTopic: 'TokenApproved'): EventFragment +} + +export interface EncryptedNoteEventObject { + sender: string + encryptedNote: string +} +export type EncryptedNoteEvent = TypedEvent<[string, string], EncryptedNoteEventObject> + +export type EncryptedNoteEventFilter = TypedEventFilter + +export interface InstanceRegistryUpdatedEventObject { + newInstanceRegistryProxyAddress: string +} +export type InstanceRegistryUpdatedEvent = TypedEvent<[string], InstanceRegistryUpdatedEventObject> + +export type InstanceRegistryUpdatedEventFilter = TypedEventFilter + +export interface RelayerRegistryUpdatedEventObject { + newRelayerRegistryProxyAddress: string +} +export type RelayerRegistryUpdatedEvent = TypedEvent<[string], RelayerRegistryUpdatedEventObject> + +export type RelayerRegistryUpdatedEventFilter = TypedEventFilter + +export interface TokenApprovedEventObject { + spender: string + amount: BigNumber +} +export type TokenApprovedEvent = TypedEvent<[string, BigNumber], TokenApprovedEventObject> + +export type TokenApprovedEventFilter = TypedEventFilter + +export interface TornadoRouter extends BaseContract { + contractName: 'TornadoRouter' + + connect(signerOrProvider: Signer | Provider | string): this + attach(addressOrName: string): this + deployed(): Promise + + interface: TornadoRouterInterface + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise> + + listeners(eventFilter?: TypedEventFilter): Array> + listeners(eventName?: string): Array + removeAllListeners(eventFilter: TypedEventFilter): this + removeAllListeners(eventName?: string): this + off: OnEvent + on: OnEvent + once: OnEvent + removeListener: OnEvent + + functions: { + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise + + governanceProxyAddress(overrides?: CallOverrides): Promise<[string]> + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + instanceRegistry(overrides?: CallOverrides): Promise<[string]> + + relayerRegistry(overrides?: CallOverrides): Promise<[string]> + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + version(overrides?: CallOverrides): Promise<[string]> + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise + } + + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise + + governanceProxyAddress(overrides?: CallOverrides): Promise + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + instanceRegistry(overrides?: CallOverrides): Promise + + relayerRegistry(overrides?: CallOverrides): Promise + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + version(overrides?: CallOverrides): Promise + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise + + callStatic: { + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: CallOverrides + ): Promise + + backupNotes(_encryptedNotes: PromiseOrValue[], overrides?: CallOverrides): Promise + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: CallOverrides + ): Promise + + governanceProxyAddress(overrides?: CallOverrides): Promise + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise + + instanceRegistry(overrides?: CallOverrides): Promise + + relayerRegistry(overrides?: CallOverrides): Promise + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: CallOverrides + ): Promise + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise + + version(overrides?: CallOverrides): Promise + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: CallOverrides + ): Promise + } + + filters: { + 'EncryptedNote(address,bytes)'( + sender?: PromiseOrValue | null, + encryptedNote?: null + ): EncryptedNoteEventFilter + EncryptedNote(sender?: PromiseOrValue | null, encryptedNote?: null): EncryptedNoteEventFilter + + 'InstanceRegistryUpdated(address)'( + newInstanceRegistryProxyAddress?: null + ): InstanceRegistryUpdatedEventFilter + InstanceRegistryUpdated(newInstanceRegistryProxyAddress?: null): InstanceRegistryUpdatedEventFilter + + 'RelayerRegistryUpdated(address)'( + newRelayerRegistryProxyAddress?: null + ): RelayerRegistryUpdatedEventFilter + RelayerRegistryUpdated(newRelayerRegistryProxyAddress?: null): RelayerRegistryUpdatedEventFilter + + 'TokenApproved(address,uint256)'( + spender?: PromiseOrValue | null, + amount?: null + ): TokenApprovedEventFilter + TokenApproved(spender?: PromiseOrValue | null, amount?: null): TokenApprovedEventFilter + } + + estimateGas: { + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise + + governanceProxyAddress(overrides?: CallOverrides): Promise + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + instanceRegistry(overrides?: CallOverrides): Promise + + relayerRegistry(overrides?: CallOverrides): Promise + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + version(overrides?: CallOverrides): Promise + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise + } + + populateTransaction: { + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise + + governanceProxyAddress(overrides?: CallOverrides): Promise + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + instanceRegistry(overrides?: CallOverrides): Promise + + relayerRegistry(overrides?: CallOverrides): Promise + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise + + version(overrides?: CallOverrides): Promise + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise + } +} diff --git a/@tornado/sdk-core/src/deth/factories/TornadoRouter__factory.ts b/@tornado/sdk-core/src/deth/factories/TornadoRouter__factory.ts new file mode 100644 index 0000000..818f3f2 --- /dev/null +++ b/@tornado/sdk-core/src/deth/factories/TornadoRouter__factory.ts @@ -0,0 +1,362 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { Signer, utils, Contract, ContractFactory, Overrides } from 'ethers' +import type { Provider, TransactionRequest } from '@ethersproject/providers' +import type { PromiseOrValue } from '../common' +import type { TornadoRouter, TornadoRouterInterface } from '../TornadoRouter' + +const _abi = [ + { + inputs: [ + { + internalType: 'address', + name: '_governanceProxyAddress', + type: 'address' + } + ], + stateMutability: 'nonpayable', + type: 'constructor' + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'sender', + type: 'address' + }, + { + indexed: false, + internalType: 'bytes', + name: 'encryptedNote', + type: 'bytes' + } + ], + name: 'EncryptedNote', + type: 'event' + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'newInstanceRegistryProxyAddress', + type: 'address' + } + ], + name: 'InstanceRegistryUpdated', + type: 'event' + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'newRelayerRegistryProxyAddress', + type: 'address' + } + ], + name: 'RelayerRegistryUpdated', + type: 'event' + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'spender', + type: 'address' + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256' + } + ], + name: 'TokenApproved', + type: 'event' + }, + { + inputs: [ + { + internalType: 'contract IERC20', + name: '_token', + type: 'address' + }, + { + internalType: 'address', + name: '_spender', + type: 'address' + }, + { + internalType: 'uint256', + name: '_amount', + type: 'uint256' + } + ], + name: 'approveTokenForInstance', + outputs: [], + stateMutability: 'nonpayable', + type: 'function' + }, + { + inputs: [ + { + internalType: 'bytes[]', + name: '_encryptedNotes', + type: 'bytes[]' + } + ], + name: 'backupNotes', + outputs: [], + stateMutability: 'nonpayable', + type: 'function' + }, + { + inputs: [ + { + internalType: 'contract ITornadoInstance', + name: '_tornado', + type: 'address' + }, + { + internalType: 'bytes32', + name: '_commitment', + type: 'bytes32' + }, + { + internalType: 'bytes', + name: '_encryptedNote', + type: 'bytes' + } + ], + name: 'deposit', + outputs: [], + stateMutability: 'payable', + type: 'function' + }, + { + inputs: [], + name: 'governanceProxyAddress', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address' + } + ], + stateMutability: 'view', + type: 'function' + }, + { + inputs: [ + { + internalType: 'address', + name: '_instanceRegistryAddress', + type: 'address' + }, + { + internalType: 'address', + name: '_relayerRegistryAddress', + type: 'address' + } + ], + name: 'initialize', + outputs: [], + stateMutability: 'nonpayable', + type: 'function' + }, + { + inputs: [], + name: 'instanceRegistry', + outputs: [ + { + internalType: 'contract InstanceRegistry', + name: '', + type: 'address' + } + ], + stateMutability: 'view', + type: 'function' + }, + { + inputs: [], + name: 'relayerRegistry', + outputs: [ + { + internalType: 'contract RelayerRegistry', + name: '', + type: 'address' + } + ], + stateMutability: 'view', + type: 'function' + }, + { + inputs: [ + { + internalType: 'contract IERC20', + name: '_token', + type: 'address' + }, + { + internalType: 'address payable', + name: '_to', + type: 'address' + }, + { + internalType: 'uint256', + name: '_amount', + type: 'uint256' + } + ], + name: 'rescueTokens', + outputs: [], + stateMutability: 'nonpayable', + type: 'function' + }, + { + inputs: [ + { + internalType: 'address', + name: '_newInstanceRegistryProxyAddress', + type: 'address' + } + ], + name: 'setInstanceRegistry', + outputs: [], + stateMutability: 'nonpayable', + type: 'function' + }, + { + inputs: [ + { + internalType: 'address', + name: '_newRelayerRegistryProxyAddress', + type: 'address' + } + ], + name: 'setRelayerRegistry', + outputs: [], + stateMutability: 'nonpayable', + type: 'function' + }, + { + inputs: [], + name: 'version', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string' + } + ], + stateMutability: 'pure', + type: 'function' + }, + { + inputs: [ + { + internalType: 'contract ITornadoInstance', + name: '_tornado', + type: 'address' + }, + { + internalType: 'bytes', + name: '_proof', + type: 'bytes' + }, + { + internalType: 'bytes32', + name: '_root', + type: 'bytes32' + }, + { + internalType: 'bytes32', + name: '_nullifierHash', + type: 'bytes32' + }, + { + internalType: 'address payable', + name: '_recipient', + type: 'address' + }, + { + internalType: 'address payable', + name: '_relayer', + type: 'address' + }, + { + internalType: 'uint256', + name: '_fee', + type: 'uint256' + }, + { + internalType: 'uint256', + name: '_refund', + type: 'uint256' + } + ], + name: 'withdraw', + outputs: [], + stateMutability: 'payable', + type: 'function' + } +] as const + +const _bytecode = + '0x60a060405234801561001057600080fd5b506040516115b03803806115b083398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c61150d6100a3600039806103f1528061042d5280610647528061086d5280610907525061150d6000f3fe6080604052600436106100975760003560e01c806313d98d131461009c57806336a3874b146100b15780634655478f146100dc57806347ff589d146100f1578063485cc955146101065780634b704c971461012657806354fd4d50146101465780636485ba2a1461016857806364cb281114610188578063b438689f146101a8578063baaa2169146101bb578063cea9d26f146101db575b600080fd5b6100af6100aa366004610f3f565b6101fb565b005b3480156100bd57600080fd5b506100c66103da565b6040516100d39190611096565b60405180910390f35b3480156100e857600080fd5b506100c66103ef565b3480156100fd57600080fd5b506100c6610413565b34801561011257600080fd5b506100af610121366004610dc0565b610422565b34801561013257600080fd5b506100af610141366004610ec2565b610530565b34801561015257600080fd5b5061015b6105ba565b6040516100d39190611193565b34801561017457600080fd5b506100af610183366004610df8565b6105e5565b34801561019457600080fd5b506100af6101a3366004610da4565b61063c565b6100af6101b6366004610f98565b6106da565b3480156101c757600080fd5b506100af6101d6366004610da4565b610862565b3480156101e757600080fd5b506100af6101f6366004610e82565b6108fc565b60008054604051636695ad4960e11b815282918291620100009091046001600160a01b03169063cd2b5a9290610235908a90600401611096565b60806040518083038186803b15801561024d57600080fd5b505afa158015610261573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102859190610ed6565b93509350509250806102b25760405162461bcd60e51b81526004016102a9906111fd565b60405180910390fd5b8115610340576103403330896001600160a01b0316638bca6d166040518163ffffffff1660e01b815260040160206040518083038186803b1580156102f657600080fd5b505afa15801561030a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032e9190611038565b6001600160a01b038716929190610a90565b60405163b214faa560e01b81526001600160a01b0388169063b214faa590349061036e908a90600401611124565b6000604051808303818588803b15801561038757600080fd5b505af115801561039b573d6000803e3d6000fd5b5050505050336001600160a01b03166000805160206114b883398151915286866040516103c992919061112d565b60405180910390a250505050505050565b6000546201000090046001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b031681565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461046a5760405162461bcd60e51b81526004016102a9906111c6565b600054610100900460ff16806104835750610483610aee565b80610491575060005460ff16155b6104ad5760405162461bcd60e51b81526004016102a990611240565b600054610100900460ff161580156104d8576000805460ff1961ff0019909116610100171660011790555b6000805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155600180546001600160a01b031916918416919091179055801561052b576000805461ff00191690555b505050565b6000546201000090046001600160a01b031633146105605760405162461bcd60e51b81526004016102a9906113de565b6105746001600160a01b0384168383610af4565b816001600160a01b03167fab1e93ce08cc196e636fe318c052f82163b40e499a90a0fdb38912ecd5beae11826040516105ad9190611124565b60405180910390a2505050565b6040805180820190915260118152703b1916b7b930b1b63296b6b0b730b3b2b960791b602082015290565b60005b8181101561052b57336000805160206114b883398151915284848481811061060c57fe5b905060200281019061061e9190611421565b60405161062c92919061112d565b60405180910390a26001016105e8565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106845760405162461bcd60e51b81526004016102a9906111c6565b600180546001600160a01b0319166001600160a01b0383161790556040517fd3c0577a88b56268da0350a01cb491fb15be69982729d9cb066a0603d1fc54b8906106cf908390611096565b60405180910390a150565b60008054604051636695ad4960e11b8152620100009091046001600160a01b03169063cd2b5a9290610710908d90600401611096565b60806040518083038186803b15801561072857600080fd5b505afa15801561073c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107609190610ed6565b9350505050806107825760405162461bcd60e51b81526004016102a9906111fd565b600154604051631168473b60e21b81526001600160a01b03909116906345a11cec906107b690339088908f906004016110aa565b600060405180830381600087803b1580156107d057600080fd5b505af11580156107e4573d6000803e3d6000fd5b50506040516310d056db60e11b81526001600160a01b038d1692506321a0adb691503490610824908d908d908d908d908d908d908d908d90600401611141565b6000604051808303818588803b15801561083d57600080fd5b505af1158015610851573d6000803e3d6000fd5b505050505050505050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108aa5760405162461bcd60e51b81526004016102a9906111c6565b6000805462010000600160b01b031916620100006001600160a01b038416021790556040517fcea779b12676b53bc3062b0064b8a14145a271c42db27627a1895a67324f64cb906106cf908390611096565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109445760405162461bcd60e51b81526004016102a9906111c6565b6001600160a01b03821661096a5760405162461bcd60e51b81526004016102a9906112c5565b6001600160a01b0383166109c6574760006109858284610bb7565b6040519091506001600160a01b0385169082156108fc029083906000818181858888f193505050501580156109be573d6000803e3d6000fd5b50505061052b565b6040516370a0823160e01b81526000906001600160a01b038516906370a08231906109f5903090600401611096565b60206040518083038186803b158015610a0d57600080fd5b505afa158015610a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a459190611038565b90506000610a538284610bb7565b905060008111610a755760405162461bcd60e51b81526004016102a990611351565b610a896001600160a01b0386168583610bcf565b5050505050565b610ae8846323b872dd60e01b858585604051602401610ab1939291906110e7565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610bee565b50505050565b303b1590565b801580610b7c5750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e90610b2a90309086906004016110cd565b60206040518083038186803b158015610b4257600080fd5b505afa158015610b56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7a9190611038565b155b610b985760405162461bcd60e51b81526004016102a990611388565b61052b8363095ea7b360e01b8484604051602401610ab192919061110b565b6000818310610bc65781610bc8565b825b9392505050565b61052b8363a9059cbb60e01b8484604051602401610ab192919061110b565b6060610c43826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610c7d9092919063ffffffff16565b80519091501561052b5780806020019051810190610c619190610e66565b61052b5760405162461bcd60e51b81526004016102a990611307565b6060610c8c8484600085610c94565b949350505050565b6060610c9f85610d58565b610cbb5760405162461bcd60e51b81526004016102a99061128e565b60006060866001600160a01b03168587604051610cd8919061107a565b60006040518083038185875af1925050503d8060008114610d15576040519150601f19603f3d011682016040523d82523d6000602084013e610d1a565b606091505b50915091508115610d2e579150610c8c9050565b805115610d3e5780518082602001fd5b8360405162461bcd60e51b81526004016102a99190611193565b3b151590565b60008083601f840112610d6f578182fd5b5081356001600160401b03811115610d85578182fd5b602083019150836020828501011115610d9d57600080fd5b9250929050565b600060208284031215610db5578081fd5b8135610bc881611491565b60008060408385031215610dd2578081fd5b8235610ddd81611491565b91506020830135610ded81611491565b809150509250929050565b60008060208385031215610e0a578182fd5b82356001600160401b0380821115610e20578384fd5b818501915085601f830112610e33578384fd5b813581811115610e41578485fd5b8660208083028501011115610e54578485fd5b60209290920196919550909350505050565b600060208284031215610e77578081fd5b8151610bc8816114a9565b600080600060608486031215610e96578081fd5b8335610ea181611491565b92506020840135610eb181611491565b929592945050506040919091013590565b600080600060608486031215610e96578283fd5b60008060008060808587031215610eeb578081fd5b8451610ef681611491565b60208601519094506001600160501b0381168114610f12578182fd5b6040860151909350610f23816114a9565b6060860151909250610f34816114a9565b939692955090935050565b60008060008060608587031215610f54578384fd5b8435610f5f81611491565b93506020850135925060408501356001600160401b03811115610f80578283fd5b610f8c87828801610d5e565b95989497509550505050565b60008060008060008060008060006101008a8c031215610fb6578485fd5b8935610fc181611491565b985060208a01356001600160401b03811115610fdb578586fd5b610fe78c828d01610d5e565b90995097505060408a0135955060608a0135945060808a013561100981611491565b935060a08a013561101981611491565b8093505060c08a0135915060e08a013590509295985092959850929598565b600060208284031215611049578081fd5b5051919050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000825161108c818460208701611465565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b90815260200190565b600060208252610c8c602083018486611050565b600060e0825261115560e083018a8c611050565b60208301989098525060408101959095526001600160a01b03938416606086015291909216608084015260a083019190915260c09091015292915050565b60006020825282518060208401526111b2816040850160208701611465565b601f01601f19169190910160400192915050565b6020808252601d908201527f546f726e61646f526f757465723a206f6e6c79476f7665726e616e6365000000604082015260600190565b60208082526023908201527f546f726e61646f526f757465723a20696e7374616e6365206e6f7420656e61626040820152621b195960ea1b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526022908201527f544f524e3a2063616e206e6f742073656e6420746f207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601e908201527f544f524e3a20747279696e6720746f2073656e6420302062616c616e63650000604082015260600190565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606082015260800190565b60208082526023908201527f546f726e61646f526f757465723a206f6e6c79496e7374616e6365526567697360408201526274727960e81b606082015260800190565b6000808335601e19843603018112611437578283fd5b8301803591506001600160401b03821115611450578283fd5b602001915036819003821315610d9d57600080fd5b60005b83811015611480578181015183820152602001611468565b83811115610ae85750506000910152565b6001600160a01b03811681146114a657600080fd5b50565b80151581146114a657600080fdfefa28df43db3553771f7209dcef046f3bdfea15870ab625dcda30ac58b82b4008a2646970667358221220526b6f98f0226b043a554c9a0c6eb190a453d379dbf6d0b0804bec30140c148764736f6c634300060c0033' + +type TornadoRouterConstructorParams = [signer?: Signer] | ConstructorParameters + +const isSuperArgs = ( + xs: TornadoRouterConstructorParams +): xs is ConstructorParameters => xs.length > 1 + +export class TornadoRouter__factory extends ContractFactory { + constructor(...args: TornadoRouterConstructorParams) { + if (isSuperArgs(args)) { + super(...args) + } else { + super(_abi, _bytecode, args[0]) + } + this.contractName = 'TornadoRouter' + } + + override deploy( + _governanceProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise { + return super.deploy(_governanceProxyAddress, overrides || {}) as Promise + } + override getDeployTransaction( + _governanceProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): TransactionRequest { + return super.getDeployTransaction(_governanceProxyAddress, overrides || {}) + } + override attach(address: string): TornadoRouter { + return super.attach(address) as TornadoRouter + } + override connect(signer: Signer): TornadoRouter__factory { + return super.connect(signer) as TornadoRouter__factory + } + static readonly contractName: 'TornadoRouter' + + public readonly contractName: 'TornadoRouter' + + static readonly bytecode = _bytecode + static readonly abi = _abi + static createInterface(): TornadoRouterInterface { + return new utils.Interface(_abi) as TornadoRouterInterface + } + static connect(address: string, signerOrProvider: Signer | Provider): TornadoRouter { + return new Contract(address, _abi, signerOrProvider) as TornadoRouter + } +} diff --git a/@tornado/sdk-core/src/deth/factories/index.ts b/@tornado/sdk-core/src/deth/factories/index.ts index 03f8162..227ffe4 100644 --- a/@tornado/sdk-core/src/deth/factories/index.ts +++ b/@tornado/sdk-core/src/deth/factories/index.ts @@ -10,3 +10,4 @@ export { MulticallContract__factory } from './MulticallContract__factory' export { RelayerRegistry__factory } from './RelayerRegistry__factory' export { TornadoInstance__factory } from './TornadoInstance__factory' export { TornadoProxy__factory } from './TornadoProxy__factory' +export { TornadoRouter__factory } from './TornadoRouter__factory' diff --git a/@tornado/sdk-core/src/deth/index.ts b/@tornado/sdk-core/src/deth/index.ts index 947cf49..812231f 100644 --- a/@tornado/sdk-core/src/deth/index.ts +++ b/@tornado/sdk-core/src/deth/index.ts @@ -10,6 +10,7 @@ export type { MulticallContract } from './MulticallContract' export type { RelayerRegistry } from './RelayerRegistry' export type { TornadoInstance } from './TornadoInstance' export type { TornadoProxy } from './TornadoProxy' +export type { TornadoRouter } from './TornadoRouter' export * as factories from './factories' export { ERC20__factory } from './factories/ERC20__factory' export { ERC20Mock__factory } from './factories/ERC20Mock__factory' @@ -20,3 +21,4 @@ export { MulticallContract__factory } from './factories/MulticallContract__facto export { RelayerRegistry__factory } from './factories/RelayerRegistry__factory' export { TornadoInstance__factory } from './factories/TornadoInstance__factory' export { TornadoProxy__factory } from './factories/TornadoProxy__factory' +export { TornadoRouter__factory } from './factories/TornadoRouter__factory' diff --git a/@tornado/sdk-core/src/index.ts b/@tornado/sdk-core/src/index.ts index 735898f..3735bf3 100644 --- a/@tornado/sdk-core/src/index.ts +++ b/@tornado/sdk-core/src/index.ts @@ -2,7 +2,7 @@ import { DeepRequired, MarkOptional, Merge } from 'ts-essentials' // Local types -import { TornadoInstance, TornadoProxy } from './deth' +import { TornadoInstance, TornadoRouter } from './deth' // Monorepo import { RelayerProperties as RelayerDataProperties } from '@tornado/sdk-data' @@ -29,6 +29,7 @@ export namespace Options { export namespace Core { export interface Deposit { depositsPerInstance?: Array + callInstanceDirectly?: boolean doNotPopulate?: boolean } @@ -145,9 +146,9 @@ export class Core extends Synchronizer { return this.loadInstance(this.chain.id, token, denomination) } - getProxy(): TornadoProxy { - this._checkProvider('getProxy') - return Contracts.getProxy(String(this.chain.id), this.chain.provider) + getRouter(): TornadoRouter { + this._checkProvider('getRouter') + return Contracts.getRouter(String(this.chain.id), this.chain.provider) } async createDepositProof( @@ -162,7 +163,6 @@ export class Core extends Synchronizer { )[0] } - // TODO: Abstract out verification parts of this and provide it as a standalone service in crypto or somewhere else /** * @param instance This is the Tornado Instance which will be withdrawn from. * @param relayerProperties The properties of the relayer that is going to be used for the withdrawals. If the service fee is 0, it is assumed that there is no relayer, but that a manual wallet withdraw is being made. These properties are included in the ZK proof. @@ -180,12 +180,17 @@ export class Core extends Synchronizer { ): Promise>> { this._checkProvider('createDepositProofs') - // Extract commitments and nullifier hashes + /* ~~~~~~~~~~~~~~~~~~~~~~ EXTRACT NOTES, COMMITMENTS & BASIC CHECKS ~~~~~~~~~~~~~~~~~~~~~~ */ + const hexCommitments: string[] = [] + const hexNullifierHashes: string[] = [] + const purchaseAmounts = options?.ethPurchaseAmounts ?? new Array(depositInfo.length).fill(BigNumber.from(0)) + // Inputs must equal in length + if (depositInfo.length !== recipientAddresses.length) throw ErrorUtils.getError( 'Core.createDepositProofs: the number of recipients must equal the length of depositInfo.' @@ -196,27 +201,17 @@ export class Core extends Synchronizer { 'Core.createDepositProofs: if purchase amounts is specified, it must equal the length of depositInfo.' ) + // Extract all notes and commitments from the deposit info + depositInfo.forEach((deposit) => { hexCommitments.push(deposit.hexCommitment) hexNullifierHashes.push(deposit.hexNullifierHash) }) - // Determine cache name - const { network, token, denomination } = await Onchain.getInstanceLookupKeys(instance.address) - const name = 'Deposits' + (network + token + denomination).toUpperCase() - - // Find all leaves & indices by reading from cache - const [leaves, leafIndices] = await this._findLeavesAndIndices(name, hexCommitments) - const invalidCommitments: string[] = [] - - this.emit( - 'debug', - `\nFound leaves and indices, num leaves: ${leaves.length}, indices: [${leafIndices.join(', ')}]` - ) + /* ~~~~~~~~~~~~~~~~~~~~~~ FETCH WHETHER SOME OR ALL NOTES HAVE BEEN SPENT ~~~~~~~~~~~~~~~~~~~~~~ */ // Determine whether we will be checking whether notes are spent const checkSpent = options?.checkNotesSpent !== false - const spentNotes: string[] = [] this.emit('debug', `\nCheck spent notes? => ${checkSpent}`) @@ -225,10 +220,29 @@ export class Core extends Synchronizer { if (checkSpent) this.emit('debug', `\nSpent array: [${checkSpentArray?.join(', ')}]`) + /* ~~~~~~~~~~~~~~~~~~~~~~ COLLECT LEAVES, ALL COMMITMENTS MUST HAVE A LEAF ~~~~~~~~~~~~~~~~~~~~~~ */ + + // Determine cache name + const { network, token, denomination } = await Onchain.getInstanceLookupKeys(instance.address) + const name = 'Deposits' + (network + token + denomination).toUpperCase() + + // Find all leaves & indices by reading from cache + const [leaves, leafIndices] = await this._findLeavesAndIndices(name, hexCommitments) + + this.emit( + 'debug', + `\nFound leaves and indices, num leaves: ${leaves.length}, indices: [${leafIndices.join(', ')}]` + ) + + /* ~~~~~~~~~~~~~~~~~~~~~~ VALIDATE NOTES AND COMMITMENT ~~~~~~~~~~~~~~~~~~~~~~ */ + // Check whether a commitment has not been found in all deposits, meaning that it is invalid // Also add the invalid commitments. We can do leafIndices[i] because the matched one are concatenated // at the start + const spentNotes: string[] = [] + const invalidCommitments: string[] = [] + for (let i = 0, len = depositInfo.length; i < len; i++) { if (!leafIndices[i]) invalidCommitments.push(hexCommitments[i]) if (checkSpent && checkSpentArray![i]) spentNotes.push(hexNullifierHashes[i]) @@ -251,6 +265,8 @@ export class Core extends Synchronizer { : '') ) + /* ~~~~~~~~~~~~~~~~~~~~~~ BUILD MERKLE TREE & TEST VALIDITY ~~~~~~~~~~~~~~~~~~~~~~ */ + // Otherwise, build the merkle tree from the leaves const merkleTree = Primitives.buildMerkleTree({ height: options?.merkleTreeHeight ?? Constants.MERKLE_TREE_HEIGHT, @@ -268,6 +284,8 @@ export class Core extends Synchronizer { 'Core.createDepositProofs: the merkle tree created is not valid, something went wrong with syncing.' ) + /* ~~~~~~~~~~~~~~~~~~~~~~ PREPARE DATA FOR PROOF & BUILD PROOF ~~~~~~~~~~~~~~~~~~~~~~ */ + // Rest of note invariant arguments const inputsForProofs: InputFor.DepositProof[] = [] const gasPrice = options?.gasPrice ?? (await this.chain.getGasPrice()) @@ -305,7 +323,7 @@ export class Core extends Synchronizer { ].join(', ')}]\n` ) - // Compute proofs + // Collect all data for proofs for (let i = 0, len = depositInfo.length; i < len; i++) { inputsForProofs.push({ public: { @@ -335,6 +353,7 @@ export class Core extends Synchronizer { }) } + // Compute proofs and return return await Primitives.calcDepositProofs(inputsForProofs) } @@ -556,7 +575,7 @@ export class Core extends Synchronizer { /** * This is the main function which is used to build Tornado Cash Classic deposit transactions. An address need not be supplied because the returned note proves a deposit. * @param instances The TornadoInstance instances for which to build transactions. - * @param options The number of deposits per instance, whether or not to populate the transactions (only in the sense of encoding transaction data), and whether to backup notes and invoices. Defaults: `depositsPerInstance = [1]*instance_num, doNotPopulate = false, backup { notes = true, invoices = false }` + * @param options The number of deposits per instance, whether or not to populate the transactions (only in the sense of encoding transaction data), whether to backup notes and invoices, and whether to call the instance directly instead of the router. Defaults: `depositsPerInstance = [1]*instance_num, doNotPopulate = false, callInstanceDirectly = false, backup { notes = true, invoices = false }` * @returns A promise which resolves to the created transactions. * @todo TODO: Maybe this should be sync and deposit backups should be async somewhere else */ @@ -568,6 +587,8 @@ export class Core extends Synchronizer { const depositsPerInstance = options?.depositsPerInstance ?? new Array(instances.length).fill(1) + const callInstanceDirectly = options?.callInstanceDirectly ?? false + const doNotPopulate = options?.doNotPopulate ?? false if (depositsPerInstance.length != instances.length) @@ -575,9 +596,7 @@ export class Core extends Synchronizer { 'Core.createDepositTx: number of deposit amount elements must equal the number of instances!' ) - const chainId = this.chain.id - - const proxy: TornadoProxy = Contracts.getProxy(String(chainId), this.chain.provider) + const router: TornadoRouter = this.getRouter() const txs: Array = [] @@ -591,15 +610,21 @@ export class Core extends Synchronizer { if (!doNotPopulate) { txs.push({ - request: { - to: proxy.address, - data: proxy.interface.encodeFunctionData('deposit', [ - instances[i].address, - deposit.hexCommitment, - [] - ]), - value: token == 'eth' ? parseUnits(denomination) : BigNumber.from(0) - }, + request: !callInstanceDirectly + ? { + to: router.address, + data: router.interface.encodeFunctionData('deposit', [ + instances[i].address, + deposit.hexCommitment, + [] + ]), + value: token == 'eth' ? parseUnits(denomination) : BigNumber.from(0) + } + : { + to: instances[i].address, + data: instances[i].interface.encodeFunctionData('deposit', [deposit.hexCommitment]), + value: token == 'eth' ? parseUnits(denomination) : BigNumber.from(0) + }, note: pathstring + '_' + note, invoice: pathstring + '_' + deposit.hexCommitment }) diff --git a/@tornado/sdk-crypto/package.json b/@tornado/sdk-crypto/package.json index 8a08c22..dbf0904 100644 --- a/@tornado/sdk-crypto/package.json +++ b/@tornado/sdk-crypto/package.json @@ -13,7 +13,7 @@ "crypto", "zk" ], - "version": "0.0.12-alpha", + "version": "0.0.13-alpha", "engines": { "node": "^18" }, diff --git a/@tornado/sdk-crypto/src/index.ts b/@tornado/sdk-crypto/src/index.ts index d1e61ca..d3758aa 100644 --- a/@tornado/sdk-crypto/src/index.ts +++ b/@tornado/sdk-crypto/src/index.ts @@ -235,12 +235,10 @@ export namespace Primitives { for (let i = 0, len = inputs.length; i < len; i++) { const input = inputs[i] - // TODO: remove try and const again after fixing let proofData // Compute Merkle Proof // The ts return is noted as `pathIndex` but using this we get an undefined because it is really `pathIndices`??? - // TODO: Bug that needs to be fixed (above) const { pathElements, pathIndices } = input.public.tree.path(input.public.leafIndex) proofs.push([]) @@ -272,7 +270,7 @@ export namespace Primitives { provingKey ) } catch (err) { - groth16.terminate() + Setup.terminateGroth16() throw ErrorUtils.ensureError(err) } diff --git a/@tornado/sdk-data/package.json b/@tornado/sdk-data/package.json index fb116e0..b71833d 100644 --- a/@tornado/sdk-data/package.json +++ b/@tornado/sdk-data/package.json @@ -13,7 +13,7 @@ "crypto", "zk" ], - "version": "0.0.12-alpha", + "version": "0.0.13-alpha", "engines": { "node": "^18" }, diff --git a/@tornado/sdk-data/resources/onchain/instanceAddresses.json b/@tornado/sdk-data/resources/onchain/instanceAddresses.json index 300e103..d2250f0 100644 --- a/@tornado/sdk-data/resources/onchain/instanceAddresses.json +++ b/@tornado/sdk-data/resources/onchain/instanceAddresses.json @@ -7,6 +7,11 @@ "1dai1000": "0xFD8610d20aA15b7B2E3Be39B396a1bC3516c7144", "1dai10000": "0x07687e702b410Fa43f4cB4Af7FA097918ffD2730", "1dai100000": "0x23773E65ed146A459791799d01336DB287f25334", + "1crvusd100": "0x913a73486Dc4AA3832A56d461542836C1eeB93be", + "1crvusd1000": "0x5A6b3C829dB3e938C885000c6E93CF35E74876a4", + "1crvusd10000": "0x49f173CDAB99a2C3800F1255393DF9B7a17B82Bb", + "1crvusd100000": "0x4640Dffc9fD0B113B983e3A350b070a119CA143C", + "1crvusd1000000": "0xc4eA8Bd3Fd76f3c255395793B47F7c55aD59d991", "1cdai5000": "0x22aaA7720ddd5388A3c0A3333430953C68f1849b", "1cdai50000": "0x03893a7c7463AE47D46bc7f091665f1893656003", "1cdai500000": "0x2717c5e28cf931547B621a5dddb772Ab6A35B701", diff --git a/@tornado/sdk-registry/package.json b/@tornado/sdk-registry/package.json index 379f1ec..956d4bd 100644 --- a/@tornado/sdk-registry/package.json +++ b/@tornado/sdk-registry/package.json @@ -13,7 +13,7 @@ "crypto", "zk" ], - "version": "0.0.12-alpha", + "version": "0.0.13-alpha", "engines": { "node": "^18" }, diff --git a/@tornado/sdk-registry/src/deth/TornadoRouter.ts b/@tornado/sdk-registry/src/deth/TornadoRouter.ts new file mode 100644 index 0000000..1596476 --- /dev/null +++ b/@tornado/sdk-registry/src/deth/TornadoRouter.ts @@ -0,0 +1,605 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PayableOverrides, + PopulatedTransaction, + Signer, + utils, +} from "ethers"; +import type { + FunctionFragment, + Result, + EventFragment, +} from "@ethersproject/abi"; +import type { Listener, Provider } from "@ethersproject/providers"; +import type { + TypedEventFilter, + TypedEvent, + TypedListener, + OnEvent, + PromiseOrValue, +} from "./common"; + +export interface TornadoRouterInterface extends utils.Interface { + functions: { + "approveTokenForInstance(address,address,uint256)": FunctionFragment; + "backupNotes(bytes[])": FunctionFragment; + "deposit(address,bytes32,bytes)": FunctionFragment; + "governanceProxyAddress()": FunctionFragment; + "initialize(address,address)": FunctionFragment; + "instanceRegistry()": FunctionFragment; + "relayerRegistry()": FunctionFragment; + "rescueTokens(address,address,uint256)": FunctionFragment; + "setInstanceRegistry(address)": FunctionFragment; + "setRelayerRegistry(address)": FunctionFragment; + "version()": FunctionFragment; + "withdraw(address,bytes,bytes32,bytes32,address,address,uint256,uint256)": FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | "approveTokenForInstance" + | "backupNotes" + | "deposit" + | "governanceProxyAddress" + | "initialize" + | "instanceRegistry" + | "relayerRegistry" + | "rescueTokens" + | "setInstanceRegistry" + | "setRelayerRegistry" + | "version" + | "withdraw" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "approveTokenForInstance", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "backupNotes", + values: [PromiseOrValue[]] + ): string; + encodeFunctionData( + functionFragment: "deposit", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "governanceProxyAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [PromiseOrValue, PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "instanceRegistry", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "relayerRegistry", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "rescueTokens", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "setInstanceRegistry", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "setRelayerRegistry", + values: [PromiseOrValue] + ): string; + encodeFunctionData(functionFragment: "version", values?: undefined): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + + decodeFunctionResult( + functionFragment: "approveTokenForInstance", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "backupNotes", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "governanceProxyAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "instanceRegistry", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "relayerRegistry", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rescueTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setInstanceRegistry", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setRelayerRegistry", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "version", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + + events: { + "EncryptedNote(address,bytes)": EventFragment; + "InstanceRegistryUpdated(address)": EventFragment; + "RelayerRegistryUpdated(address)": EventFragment; + "TokenApproved(address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "EncryptedNote"): EventFragment; + getEvent(nameOrSignatureOrTopic: "InstanceRegistryUpdated"): EventFragment; + getEvent(nameOrSignatureOrTopic: "RelayerRegistryUpdated"): EventFragment; + getEvent(nameOrSignatureOrTopic: "TokenApproved"): EventFragment; +} + +export interface EncryptedNoteEventObject { + sender: string; + encryptedNote: string; +} +export type EncryptedNoteEvent = TypedEvent< + [string, string], + EncryptedNoteEventObject +>; + +export type EncryptedNoteEventFilter = TypedEventFilter; + +export interface InstanceRegistryUpdatedEventObject { + newInstanceRegistryProxyAddress: string; +} +export type InstanceRegistryUpdatedEvent = TypedEvent< + [string], + InstanceRegistryUpdatedEventObject +>; + +export type InstanceRegistryUpdatedEventFilter = + TypedEventFilter; + +export interface RelayerRegistryUpdatedEventObject { + newRelayerRegistryProxyAddress: string; +} +export type RelayerRegistryUpdatedEvent = TypedEvent< + [string], + RelayerRegistryUpdatedEventObject +>; + +export type RelayerRegistryUpdatedEventFilter = + TypedEventFilter; + +export interface TokenApprovedEventObject { + spender: string; + amount: BigNumber; +} +export type TokenApprovedEvent = TypedEvent< + [string, BigNumber], + TokenApprovedEventObject +>; + +export type TokenApprovedEventFilter = TypedEventFilter; + +export interface TornadoRouter extends BaseContract { + contractName: "TornadoRouter"; + + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: TornadoRouterInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>; + + listeners( + eventFilter?: TypedEventFilter + ): Array>; + listeners(eventName?: string): Array; + removeAllListeners( + eventFilter: TypedEventFilter + ): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise; + + governanceProxyAddress(overrides?: CallOverrides): Promise<[string]>; + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + instanceRegistry(overrides?: CallOverrides): Promise<[string]>; + + relayerRegistry(overrides?: CallOverrides): Promise<[string]>; + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + version(overrides?: CallOverrides): Promise<[string]>; + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise; + }; + + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise; + + governanceProxyAddress(overrides?: CallOverrides): Promise; + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + instanceRegistry(overrides?: CallOverrides): Promise; + + relayerRegistry(overrides?: CallOverrides): Promise; + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + version(overrides?: CallOverrides): Promise; + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise; + + callStatic: { + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: CallOverrides + ): Promise; + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + governanceProxyAddress(overrides?: CallOverrides): Promise; + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + instanceRegistry(overrides?: CallOverrides): Promise; + + relayerRegistry(overrides?: CallOverrides): Promise; + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + version(overrides?: CallOverrides): Promise; + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "EncryptedNote(address,bytes)"( + sender?: PromiseOrValue | null, + encryptedNote?: null + ): EncryptedNoteEventFilter; + EncryptedNote( + sender?: PromiseOrValue | null, + encryptedNote?: null + ): EncryptedNoteEventFilter; + + "InstanceRegistryUpdated(address)"( + newInstanceRegistryProxyAddress?: null + ): InstanceRegistryUpdatedEventFilter; + InstanceRegistryUpdated( + newInstanceRegistryProxyAddress?: null + ): InstanceRegistryUpdatedEventFilter; + + "RelayerRegistryUpdated(address)"( + newRelayerRegistryProxyAddress?: null + ): RelayerRegistryUpdatedEventFilter; + RelayerRegistryUpdated( + newRelayerRegistryProxyAddress?: null + ): RelayerRegistryUpdatedEventFilter; + + "TokenApproved(address,uint256)"( + spender?: PromiseOrValue | null, + amount?: null + ): TokenApprovedEventFilter; + TokenApproved( + spender?: PromiseOrValue | null, + amount?: null + ): TokenApprovedEventFilter; + }; + + estimateGas: { + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise; + + governanceProxyAddress(overrides?: CallOverrides): Promise; + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + instanceRegistry(overrides?: CallOverrides): Promise; + + relayerRegistry(overrides?: CallOverrides): Promise; + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + version(overrides?: CallOverrides): Promise; + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise; + }; + + populateTransaction: { + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise; + + governanceProxyAddress( + overrides?: CallOverrides + ): Promise; + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + instanceRegistry(overrides?: CallOverrides): Promise; + + relayerRegistry(overrides?: CallOverrides): Promise; + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + version(overrides?: CallOverrides): Promise; + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise; + }; +} diff --git a/@tornado/sdk-registry/src/deth/factories/TornadoRouter__factory.ts b/@tornado/sdk-registry/src/deth/factories/TornadoRouter__factory.ts new file mode 100644 index 0000000..3ccfdfb --- /dev/null +++ b/@tornado/sdk-registry/src/deth/factories/TornadoRouter__factory.ts @@ -0,0 +1,370 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import type { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { PromiseOrValue } from "../common"; +import type { TornadoRouter, TornadoRouterInterface } from "../TornadoRouter"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_governanceProxyAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "encryptedNote", + type: "bytes", + }, + ], + name: "EncryptedNote", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "newInstanceRegistryProxyAddress", + type: "address", + }, + ], + name: "InstanceRegistryUpdated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "newRelayerRegistryProxyAddress", + type: "address", + }, + ], + name: "RelayerRegistryUpdated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "TokenApproved", + type: "event", + }, + { + inputs: [ + { + internalType: "contract IERC20", + name: "_token", + type: "address", + }, + { + internalType: "address", + name: "_spender", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + ], + name: "approveTokenForInstance", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "_encryptedNotes", + type: "bytes[]", + }, + ], + name: "backupNotes", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "contract ITornadoInstance", + name: "_tornado", + type: "address", + }, + { + internalType: "bytes32", + name: "_commitment", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_encryptedNote", + type: "bytes", + }, + ], + name: "deposit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "governanceProxyAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_instanceRegistryAddress", + type: "address", + }, + { + internalType: "address", + name: "_relayerRegistryAddress", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "instanceRegistry", + outputs: [ + { + internalType: "contract InstanceRegistry", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "relayerRegistry", + outputs: [ + { + internalType: "contract RelayerRegistry", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "contract IERC20", + name: "_token", + type: "address", + }, + { + internalType: "address payable", + name: "_to", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + ], + name: "rescueTokens", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_newInstanceRegistryProxyAddress", + type: "address", + }, + ], + name: "setInstanceRegistry", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_newRelayerRegistryProxyAddress", + type: "address", + }, + ], + name: "setRelayerRegistry", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "version", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "contract ITornadoInstance", + name: "_tornado", + type: "address", + }, + { + internalType: "bytes", + name: "_proof", + type: "bytes", + }, + { + internalType: "bytes32", + name: "_root", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_nullifierHash", + type: "bytes32", + }, + { + internalType: "address payable", + name: "_recipient", + type: "address", + }, + { + internalType: "address payable", + name: "_relayer", + type: "address", + }, + { + internalType: "uint256", + name: "_fee", + type: "uint256", + }, + { + internalType: "uint256", + name: "_refund", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "payable", + type: "function", + }, +] as const; + +const _bytecode = + "0x60a060405234801561001057600080fd5b506040516115b03803806115b083398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c61150d6100a3600039806103f1528061042d5280610647528061086d5280610907525061150d6000f3fe6080604052600436106100975760003560e01c806313d98d131461009c57806336a3874b146100b15780634655478f146100dc57806347ff589d146100f1578063485cc955146101065780634b704c971461012657806354fd4d50146101465780636485ba2a1461016857806364cb281114610188578063b438689f146101a8578063baaa2169146101bb578063cea9d26f146101db575b600080fd5b6100af6100aa366004610f3f565b6101fb565b005b3480156100bd57600080fd5b506100c66103da565b6040516100d39190611096565b60405180910390f35b3480156100e857600080fd5b506100c66103ef565b3480156100fd57600080fd5b506100c6610413565b34801561011257600080fd5b506100af610121366004610dc0565b610422565b34801561013257600080fd5b506100af610141366004610ec2565b610530565b34801561015257600080fd5b5061015b6105ba565b6040516100d39190611193565b34801561017457600080fd5b506100af610183366004610df8565b6105e5565b34801561019457600080fd5b506100af6101a3366004610da4565b61063c565b6100af6101b6366004610f98565b6106da565b3480156101c757600080fd5b506100af6101d6366004610da4565b610862565b3480156101e757600080fd5b506100af6101f6366004610e82565b6108fc565b60008054604051636695ad4960e11b815282918291620100009091046001600160a01b03169063cd2b5a9290610235908a90600401611096565b60806040518083038186803b15801561024d57600080fd5b505afa158015610261573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102859190610ed6565b93509350509250806102b25760405162461bcd60e51b81526004016102a9906111fd565b60405180910390fd5b8115610340576103403330896001600160a01b0316638bca6d166040518163ffffffff1660e01b815260040160206040518083038186803b1580156102f657600080fd5b505afa15801561030a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032e9190611038565b6001600160a01b038716929190610a90565b60405163b214faa560e01b81526001600160a01b0388169063b214faa590349061036e908a90600401611124565b6000604051808303818588803b15801561038757600080fd5b505af115801561039b573d6000803e3d6000fd5b5050505050336001600160a01b03166000805160206114b883398151915286866040516103c992919061112d565b60405180910390a250505050505050565b6000546201000090046001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b031681565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461046a5760405162461bcd60e51b81526004016102a9906111c6565b600054610100900460ff16806104835750610483610aee565b80610491575060005460ff16155b6104ad5760405162461bcd60e51b81526004016102a990611240565b600054610100900460ff161580156104d8576000805460ff1961ff0019909116610100171660011790555b6000805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155600180546001600160a01b031916918416919091179055801561052b576000805461ff00191690555b505050565b6000546201000090046001600160a01b031633146105605760405162461bcd60e51b81526004016102a9906113de565b6105746001600160a01b0384168383610af4565b816001600160a01b03167fab1e93ce08cc196e636fe318c052f82163b40e499a90a0fdb38912ecd5beae11826040516105ad9190611124565b60405180910390a2505050565b6040805180820190915260118152703b1916b7b930b1b63296b6b0b730b3b2b960791b602082015290565b60005b8181101561052b57336000805160206114b883398151915284848481811061060c57fe5b905060200281019061061e9190611421565b60405161062c92919061112d565b60405180910390a26001016105e8565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106845760405162461bcd60e51b81526004016102a9906111c6565b600180546001600160a01b0319166001600160a01b0383161790556040517fd3c0577a88b56268da0350a01cb491fb15be69982729d9cb066a0603d1fc54b8906106cf908390611096565b60405180910390a150565b60008054604051636695ad4960e11b8152620100009091046001600160a01b03169063cd2b5a9290610710908d90600401611096565b60806040518083038186803b15801561072857600080fd5b505afa15801561073c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107609190610ed6565b9350505050806107825760405162461bcd60e51b81526004016102a9906111fd565b600154604051631168473b60e21b81526001600160a01b03909116906345a11cec906107b690339088908f906004016110aa565b600060405180830381600087803b1580156107d057600080fd5b505af11580156107e4573d6000803e3d6000fd5b50506040516310d056db60e11b81526001600160a01b038d1692506321a0adb691503490610824908d908d908d908d908d908d908d908d90600401611141565b6000604051808303818588803b15801561083d57600080fd5b505af1158015610851573d6000803e3d6000fd5b505050505050505050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108aa5760405162461bcd60e51b81526004016102a9906111c6565b6000805462010000600160b01b031916620100006001600160a01b038416021790556040517fcea779b12676b53bc3062b0064b8a14145a271c42db27627a1895a67324f64cb906106cf908390611096565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109445760405162461bcd60e51b81526004016102a9906111c6565b6001600160a01b03821661096a5760405162461bcd60e51b81526004016102a9906112c5565b6001600160a01b0383166109c6574760006109858284610bb7565b6040519091506001600160a01b0385169082156108fc029083906000818181858888f193505050501580156109be573d6000803e3d6000fd5b50505061052b565b6040516370a0823160e01b81526000906001600160a01b038516906370a08231906109f5903090600401611096565b60206040518083038186803b158015610a0d57600080fd5b505afa158015610a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a459190611038565b90506000610a538284610bb7565b905060008111610a755760405162461bcd60e51b81526004016102a990611351565b610a896001600160a01b0386168583610bcf565b5050505050565b610ae8846323b872dd60e01b858585604051602401610ab1939291906110e7565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610bee565b50505050565b303b1590565b801580610b7c5750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e90610b2a90309086906004016110cd565b60206040518083038186803b158015610b4257600080fd5b505afa158015610b56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7a9190611038565b155b610b985760405162461bcd60e51b81526004016102a990611388565b61052b8363095ea7b360e01b8484604051602401610ab192919061110b565b6000818310610bc65781610bc8565b825b9392505050565b61052b8363a9059cbb60e01b8484604051602401610ab192919061110b565b6060610c43826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610c7d9092919063ffffffff16565b80519091501561052b5780806020019051810190610c619190610e66565b61052b5760405162461bcd60e51b81526004016102a990611307565b6060610c8c8484600085610c94565b949350505050565b6060610c9f85610d58565b610cbb5760405162461bcd60e51b81526004016102a99061128e565b60006060866001600160a01b03168587604051610cd8919061107a565b60006040518083038185875af1925050503d8060008114610d15576040519150601f19603f3d011682016040523d82523d6000602084013e610d1a565b606091505b50915091508115610d2e579150610c8c9050565b805115610d3e5780518082602001fd5b8360405162461bcd60e51b81526004016102a99190611193565b3b151590565b60008083601f840112610d6f578182fd5b5081356001600160401b03811115610d85578182fd5b602083019150836020828501011115610d9d57600080fd5b9250929050565b600060208284031215610db5578081fd5b8135610bc881611491565b60008060408385031215610dd2578081fd5b8235610ddd81611491565b91506020830135610ded81611491565b809150509250929050565b60008060208385031215610e0a578182fd5b82356001600160401b0380821115610e20578384fd5b818501915085601f830112610e33578384fd5b813581811115610e41578485fd5b8660208083028501011115610e54578485fd5b60209290920196919550909350505050565b600060208284031215610e77578081fd5b8151610bc8816114a9565b600080600060608486031215610e96578081fd5b8335610ea181611491565b92506020840135610eb181611491565b929592945050506040919091013590565b600080600060608486031215610e96578283fd5b60008060008060808587031215610eeb578081fd5b8451610ef681611491565b60208601519094506001600160501b0381168114610f12578182fd5b6040860151909350610f23816114a9565b6060860151909250610f34816114a9565b939692955090935050565b60008060008060608587031215610f54578384fd5b8435610f5f81611491565b93506020850135925060408501356001600160401b03811115610f80578283fd5b610f8c87828801610d5e565b95989497509550505050565b60008060008060008060008060006101008a8c031215610fb6578485fd5b8935610fc181611491565b985060208a01356001600160401b03811115610fdb578586fd5b610fe78c828d01610d5e565b90995097505060408a0135955060608a0135945060808a013561100981611491565b935060a08a013561101981611491565b8093505060c08a0135915060e08a013590509295985092959850929598565b600060208284031215611049578081fd5b5051919050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000825161108c818460208701611465565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b90815260200190565b600060208252610c8c602083018486611050565b600060e0825261115560e083018a8c611050565b60208301989098525060408101959095526001600160a01b03938416606086015291909216608084015260a083019190915260c09091015292915050565b60006020825282518060208401526111b2816040850160208701611465565b601f01601f19169190910160400192915050565b6020808252601d908201527f546f726e61646f526f757465723a206f6e6c79476f7665726e616e6365000000604082015260600190565b60208082526023908201527f546f726e61646f526f757465723a20696e7374616e6365206e6f7420656e61626040820152621b195960ea1b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526022908201527f544f524e3a2063616e206e6f742073656e6420746f207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601e908201527f544f524e3a20747279696e6720746f2073656e6420302062616c616e63650000604082015260600190565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606082015260800190565b60208082526023908201527f546f726e61646f526f757465723a206f6e6c79496e7374616e6365526567697360408201526274727960e81b606082015260800190565b6000808335601e19843603018112611437578283fd5b8301803591506001600160401b03821115611450578283fd5b602001915036819003821315610d9d57600080fd5b60005b83811015611480578181015183820152602001611468565b83811115610ae85750506000910152565b6001600160a01b03811681146114a657600080fd5b50565b80151581146114a657600080fdfefa28df43db3553771f7209dcef046f3bdfea15870ab625dcda30ac58b82b4008a2646970667358221220526b6f98f0226b043a554c9a0c6eb190a453d379dbf6d0b0804bec30140c148764736f6c634300060c0033"; + +type TornadoRouterConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: TornadoRouterConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class TornadoRouter__factory extends ContractFactory { + constructor(...args: TornadoRouterConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + this.contractName = "TornadoRouter"; + } + + override deploy( + _governanceProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise { + return super.deploy( + _governanceProxyAddress, + overrides || {} + ) as Promise; + } + override getDeployTransaction( + _governanceProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): TransactionRequest { + return super.getDeployTransaction(_governanceProxyAddress, overrides || {}); + } + override attach(address: string): TornadoRouter { + return super.attach(address) as TornadoRouter; + } + override connect(signer: Signer): TornadoRouter__factory { + return super.connect(signer) as TornadoRouter__factory; + } + static readonly contractName: "TornadoRouter"; + + public readonly contractName: "TornadoRouter"; + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TornadoRouterInterface { + return new utils.Interface(_abi) as TornadoRouterInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TornadoRouter { + return new Contract(address, _abi, signerOrProvider) as TornadoRouter; + } +} diff --git a/@tornado/sdk-registry/src/deth/factories/index.ts b/@tornado/sdk-registry/src/deth/factories/index.ts index 8ec95cd..3c88dc0 100644 --- a/@tornado/sdk-registry/src/deth/factories/index.ts +++ b/@tornado/sdk-registry/src/deth/factories/index.ts @@ -10,3 +10,4 @@ export { MulticallContract__factory } from "./MulticallContract__factory"; export { RelayerRegistry__factory } from "./RelayerRegistry__factory"; export { TornadoInstance__factory } from "./TornadoInstance__factory"; export { TornadoProxy__factory } from "./TornadoProxy__factory"; +export { TornadoRouter__factory } from "./TornadoRouter__factory"; diff --git a/@tornado/sdk-registry/src/deth/index.ts b/@tornado/sdk-registry/src/deth/index.ts index 7adbade..6731a4f 100644 --- a/@tornado/sdk-registry/src/deth/index.ts +++ b/@tornado/sdk-registry/src/deth/index.ts @@ -10,6 +10,7 @@ export type { MulticallContract } from "./MulticallContract"; export type { RelayerRegistry } from "./RelayerRegistry"; export type { TornadoInstance } from "./TornadoInstance"; export type { TornadoProxy } from "./TornadoProxy"; +export type { TornadoRouter } from "./TornadoRouter"; export * as factories from "./factories"; export { ERC20__factory } from "./factories/ERC20__factory"; export { ERC20Mock__factory } from "./factories/ERC20Mock__factory"; @@ -20,3 +21,4 @@ export { MulticallContract__factory } from "./factories/MulticallContract__facto export { RelayerRegistry__factory } from "./factories/RelayerRegistry__factory"; export { TornadoInstance__factory } from "./factories/TornadoInstance__factory"; export { TornadoProxy__factory } from "./factories/TornadoProxy__factory"; +export { TornadoRouter__factory } from "./factories/TornadoRouter__factory"; diff --git a/@tornado/sdk-utils/package.json b/@tornado/sdk-utils/package.json index e96921b..247e8bb 100644 --- a/@tornado/sdk-utils/package.json +++ b/@tornado/sdk-utils/package.json @@ -13,7 +13,7 @@ "crypto", "zk" ], - "version": "0.0.12-alpha", + "version": "0.0.13-alpha", "engines": { "node": "^18" }, diff --git a/@tornado/sdk-web/package.json b/@tornado/sdk-web/package.json index 548760e..66e3062 100644 --- a/@tornado/sdk-web/package.json +++ b/@tornado/sdk-web/package.json @@ -13,7 +13,7 @@ "crypto", "zk" ], - "version": "0.0.12-alpha", + "version": "0.0.13-alpha", "engines": { "node": "^18" }, diff --git a/@tornado/sdk/package.json b/@tornado/sdk/package.json index 56aaf04..cd6b94d 100644 --- a/@tornado/sdk/package.json +++ b/@tornado/sdk/package.json @@ -13,7 +13,7 @@ "crypto", "zk" ], - "version": "0.0.12-alpha", + "version": "0.0.13-alpha", "engines": { "node": "^18" }, diff --git a/HISTORY.md b/HISTORY.md index c293f79..a636b7b 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,6 +1,12 @@ # History -### 0.0.12.alpha +### 0.0.13-alpha + +* Default block delta for synchronization has been set to 1,024 but there is no upper limit, any longer. +* Add the possibility of making the transaction build such that deposits go directly through the instances. This is off by default. +* Some code commenting. + +### 0.0.12-alpha **NOTE:** this is a minor breaking version, I'm making it minor on purpose to keep versioning low. diff --git a/README.md b/README.md index cfb209c..f4f9b77 100644 --- a/README.md +++ b/README.md @@ -17,12 +17,12 @@ See [HISTORY.md](./HISTORY.md) for a development log. If they are not correct contact the dev, post an issue, or yell in the Matrix chat. ``` -bfa7f04719b1c21eb4ef35651ae4c59a tornado-sdk-0.0.12-alpha.zip -b6800a4fb03e049c583fd01491b905f9 tornado-sdk-chain-0.0.12-alpha.zip -996780acf44b7d5b8acfde1114272531 tornado-sdk-core-0.0.12-alpha.zip -eba0179c6fb3d49ddcecf8239dfec88d tornado-sdk-crypto-0.0.12-alpha.zip -e7212248f48c62818204ff22175fcf20 tornado-sdk-data-0.0.12-alpha.zip -c571038fabb99c1290b4521a90f67aea tornado-sdk-registry-0.0.12-alpha.zip -2e3264f2edaf9cbe7894f0d4362f5bde tornado-sdk-utils-0.0.12-alpha.zip -4b93d201e6fd2e4bfa51b321e4c2aba4 tornado-sdk-web-0.0.12-alpha.zip +5420a6c3f62e1377c99e21db88c1a459 tornado-sdk-0.0.13-alpha.zip +e6234b9979bc4369211b33fb215887d8 tornado-sdk-chain-0.0.13-alpha.zip +2f96eb82a5aeb00d51231d4181c1f83f tornado-sdk-core-0.0.13-alpha.zip +85bef4d1acd90ca88bede3b7b7d2c171 tornado-sdk-crypto-0.0.13-alpha.zip +b7e065e55c72572ca91e3307bbf5e7a2 tornado-sdk-data-0.0.13-alpha.zip +c2ebd189ce0f82d94cc818f3ee2fd866 tornado-sdk-registry-0.0.13-alpha.zip +23203009c011d79dee88bd7247a8054a tornado-sdk-utils-0.0.13-alpha.zip +c8eead7fd82b08de2a285f940b6d6b75 tornado-sdk-web-0.0.13-alpha.zip ``` diff --git a/abis/RelayerRegistry.json b/abis/RelayerRegistry.json index 44e871e..a8c1f58 100644 --- a/abis/RelayerRegistry.json +++ b/abis/RelayerRegistry.json @@ -1,7 +1,5 @@ { - "_format": "hh-sol-artifact-1", "contractName": "RelayerRegistry", - "sourceName": "contracts/v4-patch/RelayerRegistry.sol", "abi": [ { "inputs": [ diff --git a/abis/TornadoRouter.json b/abis/TornadoRouter.json new file mode 100644 index 0000000..3da6050 --- /dev/null +++ b/abis/TornadoRouter.json @@ -0,0 +1,6528 @@ +{ + "contractName": "TornadoRouter", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_governanceProxyAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "encryptedNote", + "type": "bytes" + } + ], + "name": "EncryptedNote", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newInstanceRegistryProxyAddress", + "type": "address" + } + ], + "name": "InstanceRegistryUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newRelayerRegistryProxyAddress", + "type": "address" + } + ], + "name": "RelayerRegistryUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "TokenApproved", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + }, + { + "internalType": "address", + "name": "_spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "approveTokenForInstance", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes[]", + "name": "_encryptedNotes", + "type": "bytes[]" + } + ], + "name": "backupNotes", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ITornadoInstance", + "name": "_tornado", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "_commitment", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_encryptedNote", + "type": "bytes" + } + ], + "name": "deposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "governanceProxyAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_instanceRegistryAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_relayerRegistryAddress", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "instanceRegistry", + "outputs": [ + { + "internalType": "contract InstanceRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "relayerRegistry", + "outputs": [ + { + "internalType": "contract RelayerRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + }, + { + "internalType": "address payable", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "rescueTokens", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_newInstanceRegistryProxyAddress", + "type": "address" + } + ], + "name": "setInstanceRegistry", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_newRelayerRegistryProxyAddress", + "type": "address" + } + ], + "name": "setRelayerRegistry", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ITornadoInstance", + "name": "_tornado", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_proof", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "_root", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_nullifierHash", + "type": "bytes32" + }, + { + "internalType": "address payable", + "name": "_recipient", + "type": "address" + }, + { + "internalType": "address payable", + "name": "_relayer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_fee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_refund", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ], + "bytecode": { + "object": "0x60a060405234801561001057600080fd5b506040516115b03803806115b083398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c61150d6100a3600039806103f1528061042d5280610647528061086d5280610907525061150d6000f3fe6080604052600436106100975760003560e01c806313d98d131461009c57806336a3874b146100b15780634655478f146100dc57806347ff589d146100f1578063485cc955146101065780634b704c971461012657806354fd4d50146101465780636485ba2a1461016857806364cb281114610188578063b438689f146101a8578063baaa2169146101bb578063cea9d26f146101db575b600080fd5b6100af6100aa366004610f3f565b6101fb565b005b3480156100bd57600080fd5b506100c66103da565b6040516100d39190611096565b60405180910390f35b3480156100e857600080fd5b506100c66103ef565b3480156100fd57600080fd5b506100c6610413565b34801561011257600080fd5b506100af610121366004610dc0565b610422565b34801561013257600080fd5b506100af610141366004610ec2565b610530565b34801561015257600080fd5b5061015b6105ba565b6040516100d39190611193565b34801561017457600080fd5b506100af610183366004610df8565b6105e5565b34801561019457600080fd5b506100af6101a3366004610da4565b61063c565b6100af6101b6366004610f98565b6106da565b3480156101c757600080fd5b506100af6101d6366004610da4565b610862565b3480156101e757600080fd5b506100af6101f6366004610e82565b6108fc565b60008054604051636695ad4960e11b815282918291620100009091046001600160a01b03169063cd2b5a9290610235908a90600401611096565b60806040518083038186803b15801561024d57600080fd5b505afa158015610261573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102859190610ed6565b93509350509250806102b25760405162461bcd60e51b81526004016102a9906111fd565b60405180910390fd5b8115610340576103403330896001600160a01b0316638bca6d166040518163ffffffff1660e01b815260040160206040518083038186803b1580156102f657600080fd5b505afa15801561030a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032e9190611038565b6001600160a01b038716929190610a90565b60405163b214faa560e01b81526001600160a01b0388169063b214faa590349061036e908a90600401611124565b6000604051808303818588803b15801561038757600080fd5b505af115801561039b573d6000803e3d6000fd5b5050505050336001600160a01b03166000805160206114b883398151915286866040516103c992919061112d565b60405180910390a250505050505050565b6000546201000090046001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b031681565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461046a5760405162461bcd60e51b81526004016102a9906111c6565b600054610100900460ff16806104835750610483610aee565b80610491575060005460ff16155b6104ad5760405162461bcd60e51b81526004016102a990611240565b600054610100900460ff161580156104d8576000805460ff1961ff0019909116610100171660011790555b6000805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155600180546001600160a01b031916918416919091179055801561052b576000805461ff00191690555b505050565b6000546201000090046001600160a01b031633146105605760405162461bcd60e51b81526004016102a9906113de565b6105746001600160a01b0384168383610af4565b816001600160a01b03167fab1e93ce08cc196e636fe318c052f82163b40e499a90a0fdb38912ecd5beae11826040516105ad9190611124565b60405180910390a2505050565b6040805180820190915260118152703b1916b7b930b1b63296b6b0b730b3b2b960791b602082015290565b60005b8181101561052b57336000805160206114b883398151915284848481811061060c57fe5b905060200281019061061e9190611421565b60405161062c92919061112d565b60405180910390a26001016105e8565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106845760405162461bcd60e51b81526004016102a9906111c6565b600180546001600160a01b0319166001600160a01b0383161790556040517fd3c0577a88b56268da0350a01cb491fb15be69982729d9cb066a0603d1fc54b8906106cf908390611096565b60405180910390a150565b60008054604051636695ad4960e11b8152620100009091046001600160a01b03169063cd2b5a9290610710908d90600401611096565b60806040518083038186803b15801561072857600080fd5b505afa15801561073c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107609190610ed6565b9350505050806107825760405162461bcd60e51b81526004016102a9906111fd565b600154604051631168473b60e21b81526001600160a01b03909116906345a11cec906107b690339088908f906004016110aa565b600060405180830381600087803b1580156107d057600080fd5b505af11580156107e4573d6000803e3d6000fd5b50506040516310d056db60e11b81526001600160a01b038d1692506321a0adb691503490610824908d908d908d908d908d908d908d908d90600401611141565b6000604051808303818588803b15801561083d57600080fd5b505af1158015610851573d6000803e3d6000fd5b505050505050505050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108aa5760405162461bcd60e51b81526004016102a9906111c6565b6000805462010000600160b01b031916620100006001600160a01b038416021790556040517fcea779b12676b53bc3062b0064b8a14145a271c42db27627a1895a67324f64cb906106cf908390611096565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109445760405162461bcd60e51b81526004016102a9906111c6565b6001600160a01b03821661096a5760405162461bcd60e51b81526004016102a9906112c5565b6001600160a01b0383166109c6574760006109858284610bb7565b6040519091506001600160a01b0385169082156108fc029083906000818181858888f193505050501580156109be573d6000803e3d6000fd5b50505061052b565b6040516370a0823160e01b81526000906001600160a01b038516906370a08231906109f5903090600401611096565b60206040518083038186803b158015610a0d57600080fd5b505afa158015610a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a459190611038565b90506000610a538284610bb7565b905060008111610a755760405162461bcd60e51b81526004016102a990611351565b610a896001600160a01b0386168583610bcf565b5050505050565b610ae8846323b872dd60e01b858585604051602401610ab1939291906110e7565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610bee565b50505050565b303b1590565b801580610b7c5750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e90610b2a90309086906004016110cd565b60206040518083038186803b158015610b4257600080fd5b505afa158015610b56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7a9190611038565b155b610b985760405162461bcd60e51b81526004016102a990611388565b61052b8363095ea7b360e01b8484604051602401610ab192919061110b565b6000818310610bc65781610bc8565b825b9392505050565b61052b8363a9059cbb60e01b8484604051602401610ab192919061110b565b6060610c43826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610c7d9092919063ffffffff16565b80519091501561052b5780806020019051810190610c619190610e66565b61052b5760405162461bcd60e51b81526004016102a990611307565b6060610c8c8484600085610c94565b949350505050565b6060610c9f85610d58565b610cbb5760405162461bcd60e51b81526004016102a99061128e565b60006060866001600160a01b03168587604051610cd8919061107a565b60006040518083038185875af1925050503d8060008114610d15576040519150601f19603f3d011682016040523d82523d6000602084013e610d1a565b606091505b50915091508115610d2e579150610c8c9050565b805115610d3e5780518082602001fd5b8360405162461bcd60e51b81526004016102a99190611193565b3b151590565b60008083601f840112610d6f578182fd5b5081356001600160401b03811115610d85578182fd5b602083019150836020828501011115610d9d57600080fd5b9250929050565b600060208284031215610db5578081fd5b8135610bc881611491565b60008060408385031215610dd2578081fd5b8235610ddd81611491565b91506020830135610ded81611491565b809150509250929050565b60008060208385031215610e0a578182fd5b82356001600160401b0380821115610e20578384fd5b818501915085601f830112610e33578384fd5b813581811115610e41578485fd5b8660208083028501011115610e54578485fd5b60209290920196919550909350505050565b600060208284031215610e77578081fd5b8151610bc8816114a9565b600080600060608486031215610e96578081fd5b8335610ea181611491565b92506020840135610eb181611491565b929592945050506040919091013590565b600080600060608486031215610e96578283fd5b60008060008060808587031215610eeb578081fd5b8451610ef681611491565b60208601519094506001600160501b0381168114610f12578182fd5b6040860151909350610f23816114a9565b6060860151909250610f34816114a9565b939692955090935050565b60008060008060608587031215610f54578384fd5b8435610f5f81611491565b93506020850135925060408501356001600160401b03811115610f80578283fd5b610f8c87828801610d5e565b95989497509550505050565b60008060008060008060008060006101008a8c031215610fb6578485fd5b8935610fc181611491565b985060208a01356001600160401b03811115610fdb578586fd5b610fe78c828d01610d5e565b90995097505060408a0135955060608a0135945060808a013561100981611491565b935060a08a013561101981611491565b8093505060c08a0135915060e08a013590509295985092959850929598565b600060208284031215611049578081fd5b5051919050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000825161108c818460208701611465565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b90815260200190565b600060208252610c8c602083018486611050565b600060e0825261115560e083018a8c611050565b60208301989098525060408101959095526001600160a01b03938416606086015291909216608084015260a083019190915260c09091015292915050565b60006020825282518060208401526111b2816040850160208701611465565b601f01601f19169190910160400192915050565b6020808252601d908201527f546f726e61646f526f757465723a206f6e6c79476f7665726e616e6365000000604082015260600190565b60208082526023908201527f546f726e61646f526f757465723a20696e7374616e6365206e6f7420656e61626040820152621b195960ea1b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526022908201527f544f524e3a2063616e206e6f742073656e6420746f207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601e908201527f544f524e3a20747279696e6720746f2073656e6420302062616c616e63650000604082015260600190565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606082015260800190565b60208082526023908201527f546f726e61646f526f757465723a206f6e6c79496e7374616e6365526567697360408201526274727960e81b606082015260800190565b6000808335601e19843603018112611437578283fd5b8301803591506001600160401b03821115611450578283fd5b602001915036819003821315610d9d57600080fd5b60005b83811015611480578181015183820152602001611468565b83811115610ae85750506000910152565b6001600160a01b03811681146114a657600080fd5b50565b80151581146114a657600080fdfefa28df43db3553771f7209dcef046f3bdfea15870ab625dcda30ac58b82b4008a2646970667358221220526b6f98f0226b043a554c9a0c6eb190a453d379dbf6d0b0804bec30140c148764736f6c634300060c0033", + "sourceMap": "938:4825:67:-:0;;;1841:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1903:48;;-1:-1:-1;;;;;;1903:48:67;;;938:4825;;146:263:-1;;261:2;249:9;240:7;236:23;232:32;229:2;;;-1:-1;;267:12;229:2;83:13;;-1:-1;;;;;576:54;;701:35;;691:2;;-1:-1;;740:12;691:2;319:74;223:186;-1:-1;;;223:186::o;:::-;938:4825:67;;;;;;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x6080604052600436106100975760003560e01c806313d98d131461009c57806336a3874b146100b15780634655478f146100dc57806347ff589d146100f1578063485cc955146101065780634b704c971461012657806354fd4d50146101465780636485ba2a1461016857806364cb281114610188578063b438689f146101a8578063baaa2169146101bb578063cea9d26f146101db575b600080fd5b6100af6100aa366004610f3f565b6101fb565b005b3480156100bd57600080fd5b506100c66103da565b6040516100d39190611096565b60405180910390f35b3480156100e857600080fd5b506100c66103ef565b3480156100fd57600080fd5b506100c6610413565b34801561011257600080fd5b506100af610121366004610dc0565b610422565b34801561013257600080fd5b506100af610141366004610ec2565b610530565b34801561015257600080fd5b5061015b6105ba565b6040516100d39190611193565b34801561017457600080fd5b506100af610183366004610df8565b6105e5565b34801561019457600080fd5b506100af6101a3366004610da4565b61063c565b6100af6101b6366004610f98565b6106da565b3480156101c757600080fd5b506100af6101d6366004610da4565b610862565b3480156101e757600080fd5b506100af6101f6366004610e82565b6108fc565b60008054604051636695ad4960e11b815282918291620100009091046001600160a01b03169063cd2b5a9290610235908a90600401611096565b60806040518083038186803b15801561024d57600080fd5b505afa158015610261573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102859190610ed6565b93509350509250806102b25760405162461bcd60e51b81526004016102a9906111fd565b60405180910390fd5b8115610340576103403330896001600160a01b0316638bca6d166040518163ffffffff1660e01b815260040160206040518083038186803b1580156102f657600080fd5b505afa15801561030a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032e9190611038565b6001600160a01b038716929190610a90565b60405163b214faa560e01b81526001600160a01b0388169063b214faa590349061036e908a90600401611124565b6000604051808303818588803b15801561038757600080fd5b505af115801561039b573d6000803e3d6000fd5b5050505050336001600160a01b03166000805160206114b883398151915286866040516103c992919061112d565b60405180910390a250505050505050565b6000546201000090046001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b031681565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461046a5760405162461bcd60e51b81526004016102a9906111c6565b600054610100900460ff16806104835750610483610aee565b80610491575060005460ff16155b6104ad5760405162461bcd60e51b81526004016102a990611240565b600054610100900460ff161580156104d8576000805460ff1961ff0019909116610100171660011790555b6000805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155600180546001600160a01b031916918416919091179055801561052b576000805461ff00191690555b505050565b6000546201000090046001600160a01b031633146105605760405162461bcd60e51b81526004016102a9906113de565b6105746001600160a01b0384168383610af4565b816001600160a01b03167fab1e93ce08cc196e636fe318c052f82163b40e499a90a0fdb38912ecd5beae11826040516105ad9190611124565b60405180910390a2505050565b6040805180820190915260118152703b1916b7b930b1b63296b6b0b730b3b2b960791b602082015290565b60005b8181101561052b57336000805160206114b883398151915284848481811061060c57fe5b905060200281019061061e9190611421565b60405161062c92919061112d565b60405180910390a26001016105e8565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106845760405162461bcd60e51b81526004016102a9906111c6565b600180546001600160a01b0319166001600160a01b0383161790556040517fd3c0577a88b56268da0350a01cb491fb15be69982729d9cb066a0603d1fc54b8906106cf908390611096565b60405180910390a150565b60008054604051636695ad4960e11b8152620100009091046001600160a01b03169063cd2b5a9290610710908d90600401611096565b60806040518083038186803b15801561072857600080fd5b505afa15801561073c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107609190610ed6565b9350505050806107825760405162461bcd60e51b81526004016102a9906111fd565b600154604051631168473b60e21b81526001600160a01b03909116906345a11cec906107b690339088908f906004016110aa565b600060405180830381600087803b1580156107d057600080fd5b505af11580156107e4573d6000803e3d6000fd5b50506040516310d056db60e11b81526001600160a01b038d1692506321a0adb691503490610824908d908d908d908d908d908d908d908d90600401611141565b6000604051808303818588803b15801561083d57600080fd5b505af1158015610851573d6000803e3d6000fd5b505050505050505050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108aa5760405162461bcd60e51b81526004016102a9906111c6565b6000805462010000600160b01b031916620100006001600160a01b038416021790556040517fcea779b12676b53bc3062b0064b8a14145a271c42db27627a1895a67324f64cb906106cf908390611096565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109445760405162461bcd60e51b81526004016102a9906111c6565b6001600160a01b03821661096a5760405162461bcd60e51b81526004016102a9906112c5565b6001600160a01b0383166109c6574760006109858284610bb7565b6040519091506001600160a01b0385169082156108fc029083906000818181858888f193505050501580156109be573d6000803e3d6000fd5b50505061052b565b6040516370a0823160e01b81526000906001600160a01b038516906370a08231906109f5903090600401611096565b60206040518083038186803b158015610a0d57600080fd5b505afa158015610a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a459190611038565b90506000610a538284610bb7565b905060008111610a755760405162461bcd60e51b81526004016102a990611351565b610a896001600160a01b0386168583610bcf565b5050505050565b610ae8846323b872dd60e01b858585604051602401610ab1939291906110e7565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610bee565b50505050565b303b1590565b801580610b7c5750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e90610b2a90309086906004016110cd565b60206040518083038186803b158015610b4257600080fd5b505afa158015610b56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7a9190611038565b155b610b985760405162461bcd60e51b81526004016102a990611388565b61052b8363095ea7b360e01b8484604051602401610ab192919061110b565b6000818310610bc65781610bc8565b825b9392505050565b61052b8363a9059cbb60e01b8484604051602401610ab192919061110b565b6060610c43826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610c7d9092919063ffffffff16565b80519091501561052b5780806020019051810190610c619190610e66565b61052b5760405162461bcd60e51b81526004016102a990611307565b6060610c8c8484600085610c94565b949350505050565b6060610c9f85610d58565b610cbb5760405162461bcd60e51b81526004016102a99061128e565b60006060866001600160a01b03168587604051610cd8919061107a565b60006040518083038185875af1925050503d8060008114610d15576040519150601f19603f3d011682016040523d82523d6000602084013e610d1a565b606091505b50915091508115610d2e579150610c8c9050565b805115610d3e5780518082602001fd5b8360405162461bcd60e51b81526004016102a99190611193565b3b151590565b60008083601f840112610d6f578182fd5b5081356001600160401b03811115610d85578182fd5b602083019150836020828501011115610d9d57600080fd5b9250929050565b600060208284031215610db5578081fd5b8135610bc881611491565b60008060408385031215610dd2578081fd5b8235610ddd81611491565b91506020830135610ded81611491565b809150509250929050565b60008060208385031215610e0a578182fd5b82356001600160401b0380821115610e20578384fd5b818501915085601f830112610e33578384fd5b813581811115610e41578485fd5b8660208083028501011115610e54578485fd5b60209290920196919550909350505050565b600060208284031215610e77578081fd5b8151610bc8816114a9565b600080600060608486031215610e96578081fd5b8335610ea181611491565b92506020840135610eb181611491565b929592945050506040919091013590565b600080600060608486031215610e96578283fd5b60008060008060808587031215610eeb578081fd5b8451610ef681611491565b60208601519094506001600160501b0381168114610f12578182fd5b6040860151909350610f23816114a9565b6060860151909250610f34816114a9565b939692955090935050565b60008060008060608587031215610f54578384fd5b8435610f5f81611491565b93506020850135925060408501356001600160401b03811115610f80578283fd5b610f8c87828801610d5e565b95989497509550505050565b60008060008060008060008060006101008a8c031215610fb6578485fd5b8935610fc181611491565b985060208a01356001600160401b03811115610fdb578586fd5b610fe78c828d01610d5e565b90995097505060408a0135955060608a0135945060808a013561100981611491565b935060a08a013561101981611491565b8093505060c08a0135915060e08a013590509295985092959850929598565b600060208284031215611049578081fd5b5051919050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000825161108c818460208701611465565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b90815260200190565b600060208252610c8c602083018486611050565b600060e0825261115560e083018a8c611050565b60208301989098525060408101959095526001600160a01b03938416606086015291909216608084015260a083019190915260c09091015292915050565b60006020825282518060208401526111b2816040850160208701611465565b601f01601f19169190910160400192915050565b6020808252601d908201527f546f726e61646f526f757465723a206f6e6c79476f7665726e616e6365000000604082015260600190565b60208082526023908201527f546f726e61646f526f757465723a20696e7374616e6365206e6f7420656e61626040820152621b195960ea1b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526022908201527f544f524e3a2063616e206e6f742073656e6420746f207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601e908201527f544f524e3a20747279696e6720746f2073656e6420302062616c616e63650000604082015260600190565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606082015260800190565b60208082526023908201527f546f726e61646f526f757465723a206f6e6c79496e7374616e6365526567697360408201526274727960e81b606082015260800190565b6000808335601e19843603018112611437578283fd5b8301803591506001600160401b03821115611450578283fd5b602001915036819003821315610d9d57600080fd5b60005b83811015611480578181015183820152602001611468565b83811115610ae85750506000910152565b6001600160a01b03811681146114a657600080fd5b50565b80151581146114a657600080fdfefa28df43db3553771f7209dcef046f3bdfea15870ab625dcda30ac58b82b4008a2646970667358221220526b6f98f0226b043a554c9a0c6eb190a453d379dbf6d0b0804bec30140c148764736f6c634300060c0033", + "sourceMap": "938:4825:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2558:558;;;;;;:::i;:::-;;:::i;:::-;;1250:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1159:47;;;;;;;;;;;;;:::i;1333:38::-;;;;;;;;;;;;;:::i;2255:297::-;;;;;;;;;;-1:-1:-1;2255:297:67;;;;;:::i;:::-;;:::i;4815:234::-;;;;;;;;;;-1:-1:-1;4815:234:67;;;;;:::i;:::-;;:::i;5655:106::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3761:214::-;;;;;;;;;;-1:-1:-1;3761:214:67;;;;;:::i;:::-;;:::i;5314:246::-;;;;;;;;;;-1:-1:-1;5314:246:67;;;;;:::i;:::-;;:::i;3122:633::-;;;;;;:::i;:::-;;:::i;5055:253::-;;;;;;;;;;-1:-1:-1;5055:253:67;;;;;:::i;:::-;;:::i;3981:739::-;;;;;;;;;;-1:-1:-1;3981:739:67;;;;;:::i;:::-;;:::i;2558:558::-;2716:12;2763:16;;:39;;-1:-1:-1;;;2763:39:67;;2716:12;;;;2763:16;;;;-1:-1:-1;;;;;2763:16:67;;:29;;:39;;2793:8;;2763:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2715:87;;;;;;;2821:9;2813:57;;;;-1:-1:-1;;;2813:57:67;;;;;;;:::i;:::-;;;;;;;;;2885:7;2881:112;;;2908:74;2931:10;2951:4;2958:8;-1:-1:-1;;;;;2958:21:67;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2908:22:67;;;;:74;:22;:74::i;:::-;3003:49;;-1:-1:-1;;;3003:49:67;;-1:-1:-1;;;;;3003:16:67;;;-1:-1:-1;;3028:9:67;;3003:49;;3040:11;;3003:49;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3082:10:67;;-1:-1:-1;;;;;;;;;;;;;;3094:14:67;;3068:41;;;;;;;:::i;:::-;;;;;;;;2558:558;;;;;;;:::o;1250:40::-;;;;;;-1:-1:-1;;;;;1250:40:67;;:::o;1159:47::-;;;:::o;1333:38::-;;;-1:-1:-1;;;;;1333:38:67;;:::o;2255:297::-;2175:22;-1:-1:-1;;;;;2161:36:67;:10;:36;2153:78;;;;-1:-1:-1;;;2153:78:67;;;;;;;:::i;:::-;1426:13:21::1;::::0;::::1;::::0;::::1;;;::::0;:33:::1;;;1443:16;:14;:16::i;:::-;1426:50;;;-1:-1:-1::0;1464:12:21::1;::::0;::::1;;1463:13;1426:50;1418:109;;;::::0;-1:-1:-1;;;1418:109:21;;::::1;::::0;::::1;;;:::i;:::-;1538:19;1561:13:::0;::::1;::::0;::::1;;;1560:14;1584:98:::0;::::1;;;1618:13;:20:::0;;-1:-1:-1;;;;1618:20:21;;::::1;;;1652:19;1634:4;1652:19;::::0;;1584:98:::1;2416:16:67::2;:61:::0;;-1:-1:-1;;;;;;2416:61:67::2;-1:-1:-1::0;;;;;;2416:61:67;;::::2;::::0;;;::::2;::::0;;;::::2;::::0;;;-1:-1:-1;2487:58:67;;-1:-1:-1;;;;;;2487:58:67::2;::::0;;::::2;::::0;;;::::2;::::0;;1704:66:21;::::1;;;1754:5;1738:21:::0;;-1:-1:-1;;1738:21:21::1;::::0;;1704:66:::1;2241:1:67;2255:297:::0;;:::o;4815:234::-;2036:16;;;;;-1:-1:-1;;;;;2036:16:67;2014:10;:39;2006:87;;;;-1:-1:-1;;;2006:87:67;;;;;;;:::i;:::-;4958:37:::1;-1:-1:-1::0;;;;;4958:18:67;::::1;4977:8:::0;4987:7;4958:18:::1;:37::i;:::-;5010:32;::::0;-1:-1:-1;;;;;5010:32:67;::::1;::::0;::::1;::::0;::::1;::::0;5034:7;;5010:32:::1;:::i;:::-;;;;;;;;4815:234:::0;;;:::o;5655:106::-;5728:26;;;;;;;;;;;;-1:-1:-1;;;5728:26:67;;;;;5655:106::o;3761:214::-;3846:9;3841:128;3861:26;;;3841:128;;;3927:10;-1:-1:-1;;;;;;;;;;;3939:15:67;;3955:1;3939:18;;;;;;;;;;;;;;;;;;:::i;:::-;3913:45;;;;;;;:::i;:::-;;;;;;;;3889:3;;3841:128;;5314:246;2175:22;-1:-1:-1;;;;;2161:36:67;:10;:36;2153:78;;;;-1:-1:-1;;;2153:78:67;;;;;;;:::i;:::-;5417:15:::1;:66:::0;;-1:-1:-1;;;;;;5417:66:67::1;-1:-1:-1::0;;;;;5417:66:67;::::1;;::::0;;5498:55:::1;::::0;::::1;::::0;::::1;::::0;5417:66;;5498:55:::1;:::i;:::-;;;;;;;;5314:246:::0;:::o;3122:633::-;3422:14;3440:16;;:39;;-1:-1:-1;;;3440:39:67;;:16;;;;-1:-1:-1;;;;;3440:16:67;;:29;;:39;;3470:8;;3440:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3417:62;;;;;3498:9;3490:57;;;;-1:-1:-1;;;3490:57:67;;;;;;;:::i;:::-;3558:15;;:52;;-1:-1:-1;;;3558:52:67;;-1:-1:-1;;;;;3558:15:67;;;;:20;;:52;;3579:10;;3591:8;;3601;;3558:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3621:127:67;;-1:-1:-1;;;3621:127:67;;-1:-1:-1;;;;;3621:17:67;;;-1:-1:-1;3621:17:67;;-1:-1:-1;3647:9:67;;3621:127;;3672:6;;;;3680:5;;3687:14;;3703:10;;3715:8;;3725:4;;3731:7;;3621:127;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3122:633;;;;;;;;;;:::o;5055:253::-;2175:22;-1:-1:-1;;;;;2161:36:67;:10;:36;2153:78;;;;-1:-1:-1;;;2153:78:67;;;;;;;:::i;:::-;5160:16:::1;:69:::0;;-1:-1:-1;;;;;;5160:69:67::1;-1:-1:-1::0;;;;;;5160:69:67;::::1;;;::::0;;5244:57:::1;::::0;::::1;::::0;::::1;::::0;5160:69;;5244:57:::1;:::i;3981:739::-:0;2175:22;-1:-1:-1;;;;;2161:36:67;:10;:36;2153:78;;;;-1:-1:-1;;;2153:78:67;;;;;;;:::i;:::-;-1:-1:-1;;;;;4132:17:67;::::1;4124:64;;;::::0;-1:-1:-1;;;4124:64:67;;::::1;::::0;::::1;;;:::i;:::-;-1:-1:-1::0;;;;;4203:19:67;::::1;4199:515;;4286:21;4263:20;4339:31;4286:21:::0;4362:7;4339:8:::1;:31::i;:::-;4384:21;::::0;4321:49;;-1:-1:-1;;;;;;4384:12:67;::::1;::::0;:21:::1;::::0;::::1;;::::0;4321:49;;4384:21:::1;::::0;;;4321:49;4384:12;:21;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;4199:515;;;;;4494:31;::::0;-1:-1:-1;;;4494:31:67;;4471:20:::1;::::0;-1:-1:-1;;;;;4494:16:67;::::1;::::0;-1:-1:-1;;4494:31:67::1;::::0;4519:4:::1;::::0;4494:31:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4471:54;;4539:15;4557:31;4566:12;4580:7;4557:8;:31::i;:::-;4539:49;;4620:1;4610:7;:11;4602:54;;;::::0;-1:-1:-1;;;4602:54:67;;::::1;::::0;::::1;;;:::i;:::-;4670:33;-1:-1:-1::0;;;;;4670:19:67;::::1;4690:3:::0;4695:7;4670:19:::1;:33::i;:::-;4199:515;;3981:739:::0;;;:::o;877:203:28:-;977:96;997:5;1027:27;;;1056:4;1062:2;1066:5;1004:68;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1004:68:28;;;;;;;;;;;;;;-1:-1:-1;;;;;1004:68:28;-1:-1:-1;;;;;;1004:68:28;;;;;;;;;;;977:19;:96::i;:::-;877:203;;;;:::o;1866:593:21:-;2302:4;2410:17;2445:7;1866:593;:::o;1340:613:28:-;1705:10;;;1704:62;;-1:-1:-1;1721:39:28;;-1:-1:-1;;;1721:39:28;;-1:-1:-1;;;;;1721:15:28;;;;;:39;;1745:4;;1752:7;;1721:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;1704:62;1696:150;;;;-1:-1:-1;;;1696:150:28;;;;;;;:::i;:::-;1856:90;1876:5;1906:22;;;1930:7;1939:5;1883:62;;;;;;;;;:::i;391:104:19:-;449:7;479:1;475;:5;:13;;487:1;475:13;;;483:1;475:13;468:20;391:104;-1:-1:-1;;;391:104:19:o;696:175:28:-;778:86;798:5;828:23;;;853:2;857:5;805:58;;;;;;;;;:::i;2959:751::-;3404:69;;;;;;;;;;;;;;;;;;3378:23;;3404:69;;-1:-1:-1;;;;;3404:27:28;;;3432:4;;3404:27;:69::i;:::-;3487:17;;3378:95;;-1:-1:-1;3487:21:28;3483:221;;3627:10;3616:30;;;;;;;;;;;;:::i;:::-;3608:85;;;;-1:-1:-1;;;3608:85:28;;;;;;;:::i;3573:194:29:-;3676:12;3707:53;3730:6;3738:4;3744:1;3747:12;3707:22;:53::i;:::-;3700:60;3573:194;-1:-1:-1;;;;3573:194:29:o;4920:958::-;5050:12;5082:18;5093:6;5082:10;:18::i;:::-;5074:60;;;;-1:-1:-1;;;5074:60:29;;;;;;;:::i;:::-;5205:12;5219:23;5246:6;-1:-1:-1;;;;;5246:11:29;5266:8;5277:4;5246:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5204:78;;;;5296:7;5292:580;;;5326:10;-1:-1:-1;5319:17:29;;-1:-1:-1;5319:17:29;5292:580;5437:17;;:21;5433:429;;5695:10;5689:17;5755:15;5742:10;5738:2;5734:19;5727:44;5644:145;5827:20;;-1:-1:-1;;;5827:20:29;;;;5834:12;;5827:20;;;:::i;718:413::-;1078:20;1116:8;;;718:413::o;968:336:-1:-;;;1082:3;1075:4;1067:6;1063:17;1059:27;1049:2;;-1:-1;;1090:12;1049:2;-1:-1;1120:20;;-1:-1;;;;;1149:30;;1146:2;;;-1:-1;;1182:12;1146:2;1226:4;1218:6;1214:17;1202:29;;1277:3;1226:4;1257:17;1218:6;1243:32;;1240:41;1237:2;;;1294:1;;1284:12;1237:2;1042:262;;;;;:::o;2260:241::-;;2364:2;2352:9;2343:7;2339:23;2335:32;2332:2;;;-1:-1;;2370:12;2332:2;85:6;72:20;97:33;124:5;97:33;:::i;2508:366::-;;;2629:2;2617:9;2608:7;2604:23;2600:32;2597:2;;;-1:-1;;2635:12;2597:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;2687:63;-1:-1;2787:2;2826:22;;72:20;97:33;72:20;97:33;:::i;:::-;2795:63;;;;2591:283;;;;;:::o;2881:419::-;;;3031:2;3019:9;3010:7;3006:23;3002:32;2999:2;;;-1:-1;;3037:12;2999:2;3082:31;;-1:-1;;;;;3122:30;;;3119:2;;;-1:-1;;3155:12;3119:2;3267:6;3256:9;3252:22;;;452:3;445:4;437:6;433:17;429:27;419:2;;-1:-1;;460:12;419:2;503:6;490:20;3133:18;522:6;519:30;516:2;;;-1:-1;;552:12;516:2;647:3;3031:2;;631:6;627:17;588:6;613:32;;610:41;607:2;;;-1:-1;;654:12;607:2;3031;584:17;;;;;3175:109;;-1:-1;2993:307;;-1:-1;;;;2993:307::o;3307:257::-;;3419:2;3407:9;3398:7;3394:23;3390:32;3387:2;;;-1:-1;;3425:12;3387:2;763:6;757:13;775:30;799:5;775:30;:::i;3571:539::-;;;;3733:2;3721:9;3712:7;3708:23;3704:32;3701:2;;;-1:-1;;3739:12;3701:2;1408:6;1395:20;1420:49;1463:5;1420:49;:::i;:::-;3791:79;-1:-1;3907:2;3954:22;;217:20;242:41;217:20;242:41;:::i;:::-;3695:415;;3915:71;;-1:-1;;;4023:2;4062:22;;;;1910:20;;3695:415::o;4117:523::-;;;;4271:2;4259:9;4250:7;4246:23;4242:32;4239:2;;;-1:-1;;4277:12;4647:690;;;;;4822:3;4810:9;4801:7;4797:23;4793:33;4790:2;;;-1:-1;;4829:12;4790:2;1581:6;1575:13;1593:49;1636:5;1593:49;:::i;:::-;5008:2;5057:22;;2198:13;4881:90;;-1:-1;;;;;;24355:34;;27296;;27286:2;;-1:-1;;27334:12;27286:2;5126;5173:22;;757:13;5016:73;;-1:-1;775:30;757:13;775:30;:::i;:::-;5242:2;5289:22;;757:13;5134:71;;-1:-1;775:30;757:13;775:30;:::i;:::-;4784:553;;;;-1:-1;4784:553;;-1:-1;;4784:553::o;5344:667::-;;;;;5527:2;5515:9;5506:7;5502:23;5498:32;5495:2;;;-1:-1;;5533:12;5495:2;1760:6;1747:20;1772:59;1825:5;1772:59;:::i;:::-;5585:89;-1:-1;5711:2;5750:22;;884:20;;-1:-1;5847:2;5832:18;;5819:32;-1:-1;;;;;5860:30;;5857:2;;;-1:-1;;5893:12;5857:2;5931:64;5987:7;5978:6;5967:9;5963:22;5931:64;:::i;:::-;5489:522;;;;-1:-1;5913:82;-1:-1;;;;5489:522::o;6018:1329::-;;;;;;;;;;6302:3;6290:9;6281:7;6277:23;6273:33;6270:2;;;-1:-1;;6309:12;6270:2;1760:6;1747:20;1772:59;1825:5;1772:59;:::i;:::-;6361:89;-1:-1;6515:2;6500:18;;6487:32;-1:-1;;;;;6528:30;;6525:2;;;-1:-1;;6561:12;6525:2;6599:64;6655:7;6646:6;6635:9;6631:22;6599:64;:::i;:::-;6581:82;;-1:-1;6581:82;-1:-1;;6700:2;6739:22;;884:20;;-1:-1;6808:2;6847:22;;884:20;;-1:-1;6916:3;6964:22;;217:20;242:41;217:20;242:41;:::i;:::-;6925:71;-1:-1;7033:3;7081:22;;217:20;242:41;217:20;242:41;:::i;:::-;7042:71;;;;7150:3;7194:9;7190:22;1910:20;7159:63;;7259:3;7303:9;7299:22;1910:20;7268:63;;6264:1083;;;;;;;;;;;:::o;7354:263::-;;7469:2;7457:9;7448:7;7444:23;7440:32;7437:2;;;-1:-1;;7475:12;7437:2;-1:-1;2058:13;;7431:186;-1:-1;7431:186::o;8180:297::-;;23093:6;23088:3;23081:19;25822:6;25817:3;23130:4;23125:3;23121:14;25799:30;-1:-1;23130:4;25869:6;23125:3;25860:16;;25853:27;23130:4;26255:7;;26259:2;8463:6;26239:14;26235:28;23125:3;8432:39;;8425:46;;8280:197;;;;;:::o;13212:271::-;;8645:5;22808:12;8756:52;8801:6;8796:3;8789:4;8782:5;8778:16;8756:52;:::i;:::-;8820:16;;;;;13346:137;-1:-1;;13346:137::o;13490:222::-;-1:-1;;;;;24149:54;;;;7860:45;;13617:2;13602:18;;13588:124::o;13719:528::-;-1:-1;;;;;24149:54;;;7703:58;;24149:54;;;14124:2;14109:18;;7703:58;24149:54;;;14233:2;14218:18;;8945:76;13944:2;13929:18;;13915:332::o;14254:333::-;-1:-1;;;;;24149:54;;;7860:45;;24149:54;;14573:2;14558:18;;7860:45;14409:2;14394:18;;14380:207::o;14594:444::-;-1:-1;;;;;24149:54;;;7860:45;;24149:54;;;;14941:2;14926:18;;7860:45;15024:2;15009:18;;8108:37;;;;14777:2;14762:18;;14748:290::o;15045:333::-;-1:-1;;;;;24149:54;;;;7860:45;;15364:2;15349:18;;8108:37;15200:2;15185:18;;15171:207::o;15385:222::-;8108:37;;;15512:2;15497:18;;15483:124::o;15614:326::-;;15769:2;15790:17;15783:47;15844:86;15769:2;15758:9;15754:18;15916:6;15908;15844:86;:::i;15947:1060::-;;16302:3;16324:17;16317:47;16378:86;16302:3;16291:9;16287:19;16450:6;16442;16378:86;:::i;:::-;16543:2;16528:18;;8108:37;;;;-1:-1;16626:2;16611:18;;8108:37;;;;-1:-1;;;;;24149:54;;;16725:2;16710:18;;7860:45;24149:54;;;;16824:3;16809:19;;7860:45;-1:-1;16893:19;;8108:37;;;;16992:3;16977:19;;;8108:37;;16370:94;-1:-1;;16273:734::o;17855:310::-;;18002:2;18023:17;18016:47;9546:5;22808:12;23093:6;18002:2;17991:9;17987:18;23081:19;9640:52;9685:6;23121:14;17991:9;23121:14;18002:2;9666:5;9662:16;9640:52;:::i;:::-;26255:7;26239:14;-1:-1;;26235:28;9704:39;;;;23121:14;9704:39;;17973:192;-1:-1;;17973:192::o;18172:416::-;18372:2;18386:47;;;9980:2;18357:18;;;23081:19;10016:31;23121:14;;;9996:52;10067:12;;;18343:245::o;18595:416::-;18795:2;18809:47;;;10318:2;18780:18;;;23081:19;10354:34;23121:14;;;10334:55;-1:-1;;;10409:12;;;10402:27;10448:12;;;18766:245::o;19018:416::-;19218:2;19232:47;;;10699:2;19203:18;;;23081:19;10735:34;23121:14;;;10715:55;-1:-1;;;10790:12;;;10783:38;10840:12;;;19189:245::o;19441:416::-;19641:2;19655:47;;;11091:2;19626:18;;;23081:19;11127:31;23121:14;;;11107:52;11178:12;;;19612:245::o;19864:416::-;20064:2;20078:47;;;11429:2;20049:18;;;23081:19;11465:34;23121:14;;;11445:55;-1:-1;;;11520:12;;;11513:26;11558:12;;;20035:245::o;20287:416::-;20487:2;20501:47;;;11809:2;20472:18;;;23081:19;11845:34;23121:14;;;11825:55;-1:-1;;;11900:12;;;11893:34;11946:12;;;20458:245::o;20710:416::-;20910:2;20924:47;;;12197:2;20895:18;;;23081:19;12233:32;23121:14;;;12213:53;12285:12;;;20881:245::o;21133:416::-;21333:2;21347:47;;;12536:2;21318:18;;;23081:19;12572:34;23121:14;;;12552:55;-1:-1;;;12627:12;;;12620:46;12685:12;;;21304:245::o;21556:416::-;21756:2;21770:47;;;12936:2;21741:18;;;23081:19;12972:34;23121:14;;;12952:55;-1:-1;;;13027:12;;;13020:27;13066:12;;;21727:245::o;22208:506::-;;;22343:11;22330:25;22394:48;;22418:8;22402:14;22398:29;22394:48;22374:18;22370:73;22360:2;;-1:-1;;22447:12;22360:2;22474:33;;22528:18;;;-1:-1;;;;;;22555:30;;22552:2;;;-1:-1;;22588:12;22552:2;22433:4;22616:13;;-1:-1;22402:14;22648:38;;;22638:49;;22635:2;;;22700:1;;22690:12;25895:268;25960:1;25967:101;25981:6;25978:1;25975:13;25967:101;;;26048:11;;;26042:18;26029:11;;;26022:39;26003:2;25996:10;25967:101;;;26083:6;26080:1;26077:13;26074:2;;;-1:-1;;25960:1;26130:16;;26123:27;25944:219::o;26276:117::-;-1:-1;;;;;24149:54;;26335:35;;26325:2;;26384:1;;26374:12;26325:2;26319:74;:::o;26540:111::-;26621:5;23744:13;23737:21;26599:5;26596:32;26586:2;;26642:1;;26632:12", + "linkReferences": {}, + "immutableReferences": { + "39241": [ + { + "start": 1009, + "length": 32 + }, + { + "start": 1069, + "length": 32 + }, + { + "start": 1607, + "length": 32 + }, + { + "start": 2157, + "length": 32 + }, + { + "start": 2311, + "length": 32 + } + ] + } + }, + "methodIdentifiers": { + "approveTokenForInstance(address,address,uint256)": "4b704c97", + "backupNotes(bytes[])": "6485ba2a", + "deposit(address,bytes32,bytes)": "13d98d13", + "governanceProxyAddress()": "4655478f", + "initialize(address,address)": "485cc955", + "instanceRegistry()": "36a3874b", + "relayerRegistry()": "47ff589d", + "rescueTokens(address,address,uint256)": "cea9d26f", + "setInstanceRegistry(address)": "baaa2169", + "setRelayerRegistry(address)": "64cb2811", + "version()": "54fd4d50", + "withdraw(address,bytes,bytes32,bytes32,address,address,uint256,uint256)": "b438689f" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_governanceProxyAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"encryptedNote\",\"type\":\"bytes\"}],\"name\":\"EncryptedNote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newInstanceRegistryProxyAddress\",\"type\":\"address\"}],\"name\":\"InstanceRegistryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newRelayerRegistryProxyAddress\",\"type\":\"address\"}],\"name\":\"RelayerRegistryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenApproved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"approveTokenForInstance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"_encryptedNotes\",\"type\":\"bytes[]\"}],\"name\":\"backupNotes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ITornadoInstance\",\"name\":\"_tornado\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_commitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_encryptedNote\",\"type\":\"bytes\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governanceProxyAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_instanceRegistryAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_relayerRegistryAddress\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"instanceRegistry\",\"outputs\":[{\"internalType\":\"contract InstanceRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"relayerRegistry\",\"outputs\":[{\"internalType\":\"contract RelayerRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"rescueTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newInstanceRegistryProxyAddress\",\"type\":\"address\"}],\"name\":\"setInstanceRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newRelayerRegistryProxyAddress\",\"type\":\"address\"}],\"name\":\"setRelayerRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ITornadoInstance\",\"name\":\"_tornado\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_nullifierHash\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"_relayer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_refund\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"AlienTornadosaurusHex\",\"details\":\"This is an improved version of the TornadoRouter with a modified design from the original contract.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"TornadoRouter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contracts is a router for all Tornado Cash deposits and withdrawals\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/v2/TornadoRouter.sol\":\"TornadoRouter\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/v3-periphery/\",\":base/=src/base/\",\":common/=src/common/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":solmate/=lib/solmate/src/\",\":src/=src/\",\":torn-token/=lib/torn-token/\",\":tornado-anonymity-mining/=lib/tornado-anonymity-mining/\",\":tornado-governance/=lib/tornado-governance/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/v3-periphery/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"lib/openzeppelin-contracts/contracts/math/Math.sol\":{\"keccak256\":\"0x6c234834003dfb86e2c23d12dfdde7cc01e78013d71b52162cb308b4873562cb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0e3f39b2ec26694a42c89a5d9e489d5228f1880fcf5e375c5c975ba816e5ffe\",\"dweb:/ipfs/QmUErheHopnbBUSLDQAtWsmw6HsEvqTNp1QiBEuSJhmhHn\"]},\"lib/openzeppelin-contracts/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"lib/openzeppelin-contracts/contracts/proxy/Initializable.sol\":{\"keccak256\":\"0x8eee8bd8c216a3e437bf7a4c9844348f47a2d990e5b06cd96d250e33ab04c25a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6bb2af880b12be26b148ee99ac3a984168e7fc74721bab9cd44598a0669b038\",\"dweb:/ipfs/QmPfFDaXZbThJgaVim7nvxrw1RuD2xKWCG89K6pznmC8pJ\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x91e0bd6a6762d2a1700dab0849de8422611355100576c4beef1e80d82a4104a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73bbd77af0a8b07255d2ffa20728bcf13b116007c9ddac5d37046cfabb0e1e02\",\"dweb:/ipfs/QmRgZgWCWCSMTTaok6o4QvWA6MgB4goS8qpb3sN7bAvaZ9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x657b0d90be17331364211d74359df2a734fac864f6e88c80de7626fa33090ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09cca25fefa2354a424d55a97930c76b11dc50697ba62c85d7affc27a37e830c\",\"dweb:/ipfs/QmPTQBYXxQDSNmMKqwe4WnM8E7NwnpLnkFLSRH8hZRvrVK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017\",\"dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0xf3b30f8a49631420635a8c35daacfcaa338012755f18a76fdd118730256f9a27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d7de652204c2ee291a61aa984103dfc7ae4392d651fbbc44a0079caee7c69a3\",\"dweb:/ipfs/Qmcw1cQnq9eWDnrCBwU3TNyqLfTMUFg5YKpYUkELoMPuUE\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xf5fa8cbdffa5ef8be49b246b5628facc30b71707e78a45d80d93b64eff3fe390\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://774e78a9ff32792cc95db4d2ceaf3a7965bb7f0bea5e6cb7cff182b450d44b37\",\"dweb:/ipfs/QmRRMC4uj7eAcLW7chynA3sNEYULMFazdLwQHKHQPyzAbA\"]},\"lib/openzeppelin-contracts/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]},\"lib/torn-token/contracts/ECDSA.sol\":{\"keccak256\":\"0x79bc426cde97fc18147ad737052762a49c2bc93699f5cd9e81e5a4b1e8a96b17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b25864983a11bd200d2fb25f83e5ac91a8f377296b6672893c3f13a0320af572\",\"dweb:/ipfs/QmWbf22DMWcNQ2ULDzniro1tPte8TaEZFU9TzXZtLfkiba\"]},\"lib/torn-token/contracts/ENS.sol\":{\"keccak256\":\"0x1a74cb3f0207ddf9ce92b9725f55059a14729368a2cd63f6cd7684aa02fcc68d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddda0ae37080cc88928a95370ea17eb62f14a3d7a2d46447493ed44c0a951337\",\"dweb:/ipfs/QmXG2wVG16h868yBNiJ2E6q2hbHtun5qYecqTp6Zbs2cn9\"]},\"lib/torn-token/contracts/ERC20Permit.sol\":{\"keccak256\":\"0x530676f79a4182eb975f031a5c49bd8908fd561eba7daaeec564439e35c49836\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c45e95d4c466a23502d42830c774a51acf8566bff3cd4f8b1043fb0c988bff0\",\"dweb:/ipfs/QmPLvuAJQ43dcvvFiryjrJTs3GhARx2GMBUGn3bttePQvZ\"]},\"lib/torn-token/contracts/TORN.sol\":{\"keccak256\":\"0x42d542e7d9b8185bc3d01bec0c7273d31a142b2a5d0a0bfcb6f84976a0fb509c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a1b429a6fb7c9571acbd11e307c707a342a84f8e1f2bc15c215b68d45382893\",\"dweb:/ipfs/QmWoGXkYgzikypE4z7pPyZdEGQt1TRK3RHhLvp6W3n6skC\"]},\"lib/tornado-anonymity-mining/contracts/interfaces/ITornadoInstance.sol\":{\"keccak256\":\"0x4191422cb515705b52466027deaedb8549e472537df2fa8a53eb8dab4c719c1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1decd6abd16969b24a25374bb9c568427a94d074befa8b14a8388dfd357adcf4\",\"dweb:/ipfs/Qmb6e2VR9Fxnzy9gjUFTJecdaBABbbRzEVttK8KQCi53Zz\"]},\"lib/tornado-governance/contracts/v2-vault-and-gas/interfaces/ITornadoVault.sol\":{\"keccak256\":\"0xe21637c2f70be34aff3f07e32a043cedf82e5572f17829c6eaa16b348a21ca35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://675c164cc2956b972c24439393aba8a7103f2ed5a17d11233232cef02fc1a9fa\",\"dweb:/ipfs/QmQ7isKW7bxuHvFn213rdoEBuTjTku3gEDNbWtB4tC5JU3\"]},\"lib/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x50e87f7a3197525d1c6f7e04290060e848677c8a4e86c554bc6ace4a4d0d476d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3874093a6b37d8e68f9475a91f8eb0a1c808cb6153c84cfe6c37909505a4d24e\",\"dweb:/ipfs/QmUqGpQqvSHX4SwUvcBCs9g4ZhR9JPhgD3615oUigAhtjj\"]},\"lib/v3-core/contracts/libraries/LowGasSafeMath.sol\":{\"keccak256\":\"0xe8bfdbbb772332bff49d5e40f2533ed6285f6b53f553779b12ca4f2d23adba80\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://173e8eb626b4f31fcfae86846075c07045de237072e0544bf71a7168d8bbbb4c\",\"dweb:/ipfs/QmSTGJ9B2qsHwupg3qfjnd5wfRfKiXj786KoPzPcqzpcyA\"]},\"lib/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0xda8c2c0b12d2976acfd364453ba5f5bf0117ba3c91175ee9e1067d3fb26944d9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://3f3d2d7c2723c91830c74d96292f28fc1cfe28d388cdb9c1a5ebadb4c2b96f81\",\"dweb:/ipfs/QmYU4wk8MEm33wVWR38LoncvR7b8PP1mLuGBKX3dUpYJVE\"]},\"lib/v3-periphery/contracts/libraries/OracleLibrary.sol\":{\"keccak256\":\"0x19517bf2478c3ec56253f37b48adde7f34a6acdb467e329f74d79f9e72e2a63f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c2a6c20fb775e7a55ff9d6eb6f13982ca019e9fec3caecda5b21b6671335a5c1\",\"dweb:/ipfs/QmannSYDmR9Novyks8KRHe4u4PajfvkGU39owUBzfwy4rn\"]},\"lib/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x5edd84eb8ba7c12fd8cb6cffe52e1e9f3f6464514ee5f539c2283826209035a2\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f375d0e6d5ea3674e1aa6f112b021e9a86721a6a2f3cb22d673378b30cf0e840\",\"dweb:/ipfs/QmWJir2qnJyp963mU6U3jEEx9i3H3V5BgKawAfSnG1pC8w\"]},\"src/v1/RelayerRegistry.sol\":{\"keccak256\":\"0x1d6891499ac2f695e793f4a2b7baed0e7a18ff5914b5253821ebc50a77c782cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dbb0db5573900ba9e95b26586563c7a9110a340a718d4859267eadae97649af8\",\"dweb:/ipfs/QmeWhAuijGSmRNXA6Ak4VkxttjiQVWZ4zEhbWhMkZKnvNc\"]},\"src/v1/interfaces/IENS.sol\":{\"keccak256\":\"0x87c80e0171500b48d27bb0a755b4d39456e06dcbd933b58e8f5b87c1c3801ffa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://861361a14de14752f92d9b6970db045a5723a217169a9f31bf23f09f45a2a62c\",\"dweb:/ipfs/QmcroHgR19W1Q13Gnyuy8Jz6JNQRBg29gTYfE9vvLSizmz\"]},\"src/v1/interfaces/ITornadoGovernance.sol\":{\"keccak256\":\"0x2d0dcef36ce6f0253842ef0018b77d6d78f37277512704485e4bd46815361755\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e38471c53781cdfa9b4e1fcbb269b8b53538f15b47ac98a94627e954469eedc\",\"dweb:/ipfs/QmaziThzmm3GWTMm4mHK7g8dfxnigsNAea4CXTyqDhEsm8\"]},\"src/v1/libraries/UniswapV3OracleHelper.sol\":{\"keccak256\":\"0x195f3dd9a0c5d1eb94d16bb37c81c7cc385cae3d4312cf6c726c1590bed09825\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb50afd519913e6a1bc2e7fb9d1d164cfccb2c73d8999a117c443ca1e4ccb359\",\"dweb:/ipfs/QmaaETZMRGsqwaKTyBd3rYt28FX7vipWSPdk8TMhjkXaEd\"]},\"src/v1/staking/TornadoStakingRewards.sol\":{\"keccak256\":\"0x6a28ab49ed99ed5425f693d66ea642be89276df00b7acbfe01d7ce5b91d4961f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c85e501bf562edb7b0bcd295f3368b024cee0744f828dd479dee777d6388462e\",\"dweb:/ipfs/QmUZW5pYamQZ4jGmvxkRYaP5zde3jKWVZVrHhWaNPViL5t\"]},\"src/v1/tornado-proxy/FeeManager.sol\":{\"keccak256\":\"0x8673b18b341b88e14b22d69eb53807f5c2b22013ee9141d147581e778c5a8a79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bfff3be5479ee3790aa05e14abc5973253c834986719f98de2e11b9a0a22144b\",\"dweb:/ipfs/QmNZMvjTWNffdVg4TuvTu9BKLuSDq4JCmDgtbBfQSkKCRv\"]},\"src/v1/tornado-proxy/InstanceRegistry.sol\":{\"keccak256\":\"0x05e71dd64c375c792b3de49d056cbcc4320ef11ef6eb53893d5da0b34ff81eb9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c0a4821c6af8f036ebd04774ab06a152518578c5181c82aa992c3372d7c0a67\",\"dweb:/ipfs/QmVCStgcq9XVU6D2MUK29Yu3CPWcgkSWfVcUaB8PYQgdP7\"]},\"src/v1/tornado-proxy/TornadoRouter.sol\":{\"keccak256\":\"0x542deec857cd3890853be01279c070d5c9b57cd91c37bd5a47f043d8a10c5894\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://754884b828960f0be4d3a39b317db83c00b5011a9129efad6f38a9b768478834\",\"dweb:/ipfs/QmfMpBmmPhFDoLpijBhScpK8GpvxzDkbK4Np9cbqLou7mJ\"]},\"src/v1/utils/ENSNamehash.sol\":{\"keccak256\":\"0x23cfca6c28ed4e68d959700f2fd3fc497ea6b1d381298ef7749e97c1af849b88\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ff128bd602cc7851baeab3b7d60e42fc0943f43193c4f94aceb8e26a39710b7\",\"dweb:/ipfs/QmRaDvU2HW4tirEuSjEDBP4z7UTSBx8FWGCLxUJdmZW5SP\"]},\"src/v2/InstanceRegistry.sol\":{\"keccak256\":\"0xe64ee02ad33c182e9b78f5d5ebc868f753208d5d10a31785bccb81644778dbe7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a920f392c498cffdd07b5617108c85e544b4ee2d8431b64dcfb1d105cbc09e31\",\"dweb:/ipfs/QmTQ3U8i6AF338jUVCedvVFjk4h9jNyAmY8WZQw9zT2Htz\"]},\"src/v2/TornadoRouter.sol\":{\"keccak256\":\"0x40913fa941327535ccb0ff148f5c818ea64bedf5eed90309109d9bbeebbdc31f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a68dff41ca8f1619471cc07a9bcb3a09c30eeee7281297942b8c7d50ac78206e\",\"dweb:/ipfs/QmdDNjreLjLn3B2wsw5YZ87h9VpX2bYEa18eJfv5pHE2uq\"]},\"src/v2/libraries/BytesUtils.sol\":{\"keccak256\":\"0xf4f38d28724e3ef15b8bf80a00031406ebff8834b56380ed0db8c21f9d2980bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://904db267bad76d521e7aef6f7633db84fc6982a5e32bb1fa9ec849a6a540dd06\",\"dweb:/ipfs/QmTuchPeqjcYuarfn2aQrSV36ady5c65TjTMkQg1KYGxVz\"]},\"src/v2/libraries/NameEncoder.sol\":{\"keccak256\":\"0x86e5359d1c930794d87687de0eab0f76703493b2594fbc3a267d10e95a75d176\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21fe140c0874b0df477cfd94abcf3894499488eaa5af6de88ab3efd4d2ee4ea4\",\"dweb:/ipfs/Qmf646tAaiLeqTSWLTuLXXzW9mYt6VKdopgdtXn5KGHuGy\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.6.12+commit.27d51765" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_governanceProxyAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": true + }, + { + "internalType": "bytes", + "name": "encryptedNote", + "type": "bytes", + "indexed": false + } + ], + "type": "event", + "name": "EncryptedNote", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newInstanceRegistryProxyAddress", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "InstanceRegistryUpdated", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newRelayerRegistryProxyAddress", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "RelayerRegistryUpdated", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "TokenApproved", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + }, + { + "internalType": "address", + "name": "_spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "approveTokenForInstance" + }, + { + "inputs": [ + { + "internalType": "bytes[]", + "name": "_encryptedNotes", + "type": "bytes[]" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "backupNotes" + }, + { + "inputs": [ + { + "internalType": "contract ITornadoInstance", + "name": "_tornado", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "_commitment", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_encryptedNote", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "function", + "name": "deposit" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "governanceProxyAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_instanceRegistryAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_relayerRegistryAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "initialize" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "instanceRegistry", + "outputs": [ + { + "internalType": "contract InstanceRegistry", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "relayerRegistry", + "outputs": [ + { + "internalType": "contract RelayerRegistry", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "_token", + "type": "address" + }, + { + "internalType": "address payable", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "rescueTokens" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_newInstanceRegistryProxyAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setInstanceRegistry" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_newRelayerRegistryProxyAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setRelayerRegistry" + }, + { + "inputs": [], + "stateMutability": "pure", + "type": "function", + "name": "version", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [ + { + "internalType": "contract ITornadoInstance", + "name": "_tornado", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_proof", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "_root", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_nullifierHash", + "type": "bytes32" + }, + { + "internalType": "address payable", + "name": "_recipient", + "type": "address" + }, + { + "internalType": "address payable", + "name": "_relayer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_fee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_refund", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function", + "name": "withdraw" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", + ":@uniswap/v3-core/=lib/v3-core/", + ":@uniswap/v3-periphery/=lib/v3-periphery/", + ":base/=src/base/", + ":common/=src/common/", + ":ds-test/=lib/ds-test/src/", + ":forge-std/=lib/forge-std/src/", + ":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", + ":solmate/=lib/solmate/src/", + ":src/=src/", + ":torn-token/=lib/torn-token/", + ":tornado-anonymity-mining/=lib/tornado-anonymity-mining/", + ":tornado-governance/=lib/tornado-governance/", + ":v3-core/=lib/v3-core/", + ":v3-periphery/=lib/v3-periphery/contracts/" + ], + "optimizer": { + "enabled": true, + "runs": 1 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/v2/TornadoRouter.sol": "TornadoRouter" + }, + "libraries": {} + }, + "sources": { + "lib/openzeppelin-contracts/contracts/GSN/Context.sol": { + "keccak256": "0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183", + "urls": [ + "bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a", + "dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/access/Ownable.sol": { + "keccak256": "0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc", + "urls": [ + "bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3", + "dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/math/Math.sol": { + "keccak256": "0x6c234834003dfb86e2c23d12dfdde7cc01e78013d71b52162cb308b4873562cb", + "urls": [ + "bzz-raw://f0e3f39b2ec26694a42c89a5d9e489d5228f1880fcf5e375c5c975ba816e5ffe", + "dweb:/ipfs/QmUErheHopnbBUSLDQAtWsmw6HsEvqTNp1QiBEuSJhmhHn" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/math/SafeMath.sol": { + "keccak256": "0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806", + "urls": [ + "bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5", + "dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/proxy/Initializable.sol": { + "keccak256": "0x8eee8bd8c216a3e437bf7a4c9844348f47a2d990e5b06cd96d250e33ab04c25a", + "urls": [ + "bzz-raw://c6bb2af880b12be26b148ee99ac3a984168e7fc74721bab9cd44598a0669b038", + "dweb:/ipfs/QmPfFDaXZbThJgaVim7nvxrw1RuD2xKWCG89K6pznmC8pJ" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol": { + "keccak256": "0x91e0bd6a6762d2a1700dab0849de8422611355100576c4beef1e80d82a4104a0", + "urls": [ + "bzz-raw://73bbd77af0a8b07255d2ffa20728bcf13b116007c9ddac5d37046cfabb0e1e02", + "dweb:/ipfs/QmRgZgWCWCSMTTaok6o4QvWA6MgB4goS8qpb3sN7bAvaZ9" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/ERC20Burnable.sol": { + "keccak256": "0x657b0d90be17331364211d74359df2a734fac864f6e88c80de7626fa33090ffb", + "urls": [ + "bzz-raw://09cca25fefa2354a424d55a97930c76b11dc50697ba62c85d7affc27a37e830c", + "dweb:/ipfs/QmPTQBYXxQDSNmMKqwe4WnM8E7NwnpLnkFLSRH8hZRvrVK" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { + "keccak256": "0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385", + "urls": [ + "bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017", + "dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol": { + "keccak256": "0xf3b30f8a49631420635a8c35daacfcaa338012755f18a76fdd118730256f9a27", + "urls": [ + "bzz-raw://0d7de652204c2ee291a61aa984103dfc7ae4392d651fbbc44a0079caee7c69a3", + "dweb:/ipfs/Qmcw1cQnq9eWDnrCBwU3TNyqLfTMUFg5YKpYUkELoMPuUE" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Address.sol": { + "keccak256": "0xf5fa8cbdffa5ef8be49b246b5628facc30b71707e78a45d80d93b64eff3fe390", + "urls": [ + "bzz-raw://774e78a9ff32792cc95db4d2ceaf3a7965bb7f0bea5e6cb7cff182b450d44b37", + "dweb:/ipfs/QmRRMC4uj7eAcLW7chynA3sNEYULMFazdLwQHKHQPyzAbA" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Pausable.sol": { + "keccak256": "0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08", + "urls": [ + "bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c", + "dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe" + ], + "license": "MIT" + }, + "lib/torn-token/contracts/ECDSA.sol": { + "keccak256": "0x79bc426cde97fc18147ad737052762a49c2bc93699f5cd9e81e5a4b1e8a96b17", + "urls": [ + "bzz-raw://b25864983a11bd200d2fb25f83e5ac91a8f377296b6672893c3f13a0320af572", + "dweb:/ipfs/QmWbf22DMWcNQ2ULDzniro1tPte8TaEZFU9TzXZtLfkiba" + ], + "license": "MIT" + }, + "lib/torn-token/contracts/ENS.sol": { + "keccak256": "0x1a74cb3f0207ddf9ce92b9725f55059a14729368a2cd63f6cd7684aa02fcc68d", + "urls": [ + "bzz-raw://ddda0ae37080cc88928a95370ea17eb62f14a3d7a2d46447493ed44c0a951337", + "dweb:/ipfs/QmXG2wVG16h868yBNiJ2E6q2hbHtun5qYecqTp6Zbs2cn9" + ], + "license": "MIT" + }, + "lib/torn-token/contracts/ERC20Permit.sol": { + "keccak256": "0x530676f79a4182eb975f031a5c49bd8908fd561eba7daaeec564439e35c49836", + "urls": [ + "bzz-raw://5c45e95d4c466a23502d42830c774a51acf8566bff3cd4f8b1043fb0c988bff0", + "dweb:/ipfs/QmPLvuAJQ43dcvvFiryjrJTs3GhARx2GMBUGn3bttePQvZ" + ], + "license": "MIT" + }, + "lib/torn-token/contracts/TORN.sol": { + "keccak256": "0x42d542e7d9b8185bc3d01bec0c7273d31a142b2a5d0a0bfcb6f84976a0fb509c", + "urls": [ + "bzz-raw://5a1b429a6fb7c9571acbd11e307c707a342a84f8e1f2bc15c215b68d45382893", + "dweb:/ipfs/QmWoGXkYgzikypE4z7pPyZdEGQt1TRK3RHhLvp6W3n6skC" + ], + "license": "MIT" + }, + "lib/tornado-anonymity-mining/contracts/interfaces/ITornadoInstance.sol": { + "keccak256": "0x4191422cb515705b52466027deaedb8549e472537df2fa8a53eb8dab4c719c1c", + "urls": [ + "bzz-raw://1decd6abd16969b24a25374bb9c568427a94d074befa8b14a8388dfd357adcf4", + "dweb:/ipfs/Qmb6e2VR9Fxnzy9gjUFTJecdaBABbbRzEVttK8KQCi53Zz" + ], + "license": "MIT" + }, + "lib/tornado-governance/contracts/v2-vault-and-gas/interfaces/ITornadoVault.sol": { + "keccak256": "0xe21637c2f70be34aff3f07e32a043cedf82e5572f17829c6eaa16b348a21ca35", + "urls": [ + "bzz-raw://675c164cc2956b972c24439393aba8a7103f2ed5a17d11233232cef02fc1a9fa", + "dweb:/ipfs/QmQ7isKW7bxuHvFn213rdoEBuTjTku3gEDNbWtB4tC5JU3" + ], + "license": "MIT" + }, + "lib/v3-core/contracts/interfaces/IUniswapV3Factory.sol": { + "keccak256": "0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489", + "urls": [ + "bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2", + "dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B" + ], + "license": "GPL-2.0-or-later" + }, + "lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol": { + "keccak256": "0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1", + "urls": [ + "bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5", + "dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh" + ], + "license": "GPL-2.0-or-later" + }, + "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol": { + "keccak256": "0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634", + "urls": [ + "bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5", + "dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ" + ], + "license": "GPL-2.0-or-later" + }, + "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol": { + "keccak256": "0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5", + "urls": [ + "bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7", + "dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c" + ], + "license": "GPL-2.0-or-later" + }, + "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol": { + "keccak256": "0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd", + "urls": [ + "bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03", + "dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39" + ], + "license": "GPL-2.0-or-later" + }, + "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol": { + "keccak256": "0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7", + "urls": [ + "bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047", + "dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3" + ], + "license": "GPL-2.0-or-later" + }, + "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol": { + "keccak256": "0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235", + "urls": [ + "bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735", + "dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u" + ], + "license": "GPL-2.0-or-later" + }, + "lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol": { + "keccak256": "0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f", + "urls": [ + "bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f", + "dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg" + ], + "license": "GPL-2.0-or-later" + }, + "lib/v3-core/contracts/libraries/FullMath.sol": { + "keccak256": "0x50e87f7a3197525d1c6f7e04290060e848677c8a4e86c554bc6ace4a4d0d476d", + "urls": [ + "bzz-raw://3874093a6b37d8e68f9475a91f8eb0a1c808cb6153c84cfe6c37909505a4d24e", + "dweb:/ipfs/QmUqGpQqvSHX4SwUvcBCs9g4ZhR9JPhgD3615oUigAhtjj" + ], + "license": "MIT" + }, + "lib/v3-core/contracts/libraries/LowGasSafeMath.sol": { + "keccak256": "0xe8bfdbbb772332bff49d5e40f2533ed6285f6b53f553779b12ca4f2d23adba80", + "urls": [ + "bzz-raw://173e8eb626b4f31fcfae86846075c07045de237072e0544bf71a7168d8bbbb4c", + "dweb:/ipfs/QmSTGJ9B2qsHwupg3qfjnd5wfRfKiXj786KoPzPcqzpcyA" + ], + "license": "GPL-2.0-or-later" + }, + "lib/v3-core/contracts/libraries/TickMath.sol": { + "keccak256": "0xda8c2c0b12d2976acfd364453ba5f5bf0117ba3c91175ee9e1067d3fb26944d9", + "urls": [ + "bzz-raw://3f3d2d7c2723c91830c74d96292f28fc1cfe28d388cdb9c1a5ebadb4c2b96f81", + "dweb:/ipfs/QmYU4wk8MEm33wVWR38LoncvR7b8PP1mLuGBKX3dUpYJVE" + ], + "license": "GPL-2.0-or-later" + }, + "lib/v3-periphery/contracts/libraries/OracleLibrary.sol": { + "keccak256": "0x19517bf2478c3ec56253f37b48adde7f34a6acdb467e329f74d79f9e72e2a63f", + "urls": [ + "bzz-raw://c2a6c20fb775e7a55ff9d6eb6f13982ca019e9fec3caecda5b21b6671335a5c1", + "dweb:/ipfs/QmannSYDmR9Novyks8KRHe4u4PajfvkGU39owUBzfwy4rn" + ], + "license": "GPL-2.0-or-later" + }, + "lib/v3-periphery/contracts/libraries/PoolAddress.sol": { + "keccak256": "0x5edd84eb8ba7c12fd8cb6cffe52e1e9f3f6464514ee5f539c2283826209035a2", + "urls": [ + "bzz-raw://f375d0e6d5ea3674e1aa6f112b021e9a86721a6a2f3cb22d673378b30cf0e840", + "dweb:/ipfs/QmWJir2qnJyp963mU6U3jEEx9i3H3V5BgKawAfSnG1pC8w" + ], + "license": "GPL-2.0-or-later" + }, + "src/v1/RelayerRegistry.sol": { + "keccak256": "0x1d6891499ac2f695e793f4a2b7baed0e7a18ff5914b5253821ebc50a77c782cc", + "urls": [ + "bzz-raw://dbb0db5573900ba9e95b26586563c7a9110a340a718d4859267eadae97649af8", + "dweb:/ipfs/QmeWhAuijGSmRNXA6Ak4VkxttjiQVWZ4zEhbWhMkZKnvNc" + ], + "license": "MIT" + }, + "src/v1/interfaces/IENS.sol": { + "keccak256": "0x87c80e0171500b48d27bb0a755b4d39456e06dcbd933b58e8f5b87c1c3801ffa", + "urls": [ + "bzz-raw://861361a14de14752f92d9b6970db045a5723a217169a9f31bf23f09f45a2a62c", + "dweb:/ipfs/QmcroHgR19W1Q13Gnyuy8Jz6JNQRBg29gTYfE9vvLSizmz" + ], + "license": "MIT" + }, + "src/v1/interfaces/ITornadoGovernance.sol": { + "keccak256": "0x2d0dcef36ce6f0253842ef0018b77d6d78f37277512704485e4bd46815361755", + "urls": [ + "bzz-raw://2e38471c53781cdfa9b4e1fcbb269b8b53538f15b47ac98a94627e954469eedc", + "dweb:/ipfs/QmaziThzmm3GWTMm4mHK7g8dfxnigsNAea4CXTyqDhEsm8" + ], + "license": "MIT" + }, + "src/v1/libraries/UniswapV3OracleHelper.sol": { + "keccak256": "0x195f3dd9a0c5d1eb94d16bb37c81c7cc385cae3d4312cf6c726c1590bed09825", + "urls": [ + "bzz-raw://fb50afd519913e6a1bc2e7fb9d1d164cfccb2c73d8999a117c443ca1e4ccb359", + "dweb:/ipfs/QmaaETZMRGsqwaKTyBd3rYt28FX7vipWSPdk8TMhjkXaEd" + ], + "license": "MIT" + }, + "src/v1/staking/TornadoStakingRewards.sol": { + "keccak256": "0x6a28ab49ed99ed5425f693d66ea642be89276df00b7acbfe01d7ce5b91d4961f", + "urls": [ + "bzz-raw://c85e501bf562edb7b0bcd295f3368b024cee0744f828dd479dee777d6388462e", + "dweb:/ipfs/QmUZW5pYamQZ4jGmvxkRYaP5zde3jKWVZVrHhWaNPViL5t" + ], + "license": "MIT" + }, + "src/v1/tornado-proxy/FeeManager.sol": { + "keccak256": "0x8673b18b341b88e14b22d69eb53807f5c2b22013ee9141d147581e778c5a8a79", + "urls": [ + "bzz-raw://bfff3be5479ee3790aa05e14abc5973253c834986719f98de2e11b9a0a22144b", + "dweb:/ipfs/QmNZMvjTWNffdVg4TuvTu9BKLuSDq4JCmDgtbBfQSkKCRv" + ], + "license": "MIT" + }, + "src/v1/tornado-proxy/InstanceRegistry.sol": { + "keccak256": "0x05e71dd64c375c792b3de49d056cbcc4320ef11ef6eb53893d5da0b34ff81eb9", + "urls": [ + "bzz-raw://2c0a4821c6af8f036ebd04774ab06a152518578c5181c82aa992c3372d7c0a67", + "dweb:/ipfs/QmVCStgcq9XVU6D2MUK29Yu3CPWcgkSWfVcUaB8PYQgdP7" + ], + "license": "MIT" + }, + "src/v1/tornado-proxy/TornadoRouter.sol": { + "keccak256": "0x542deec857cd3890853be01279c070d5c9b57cd91c37bd5a47f043d8a10c5894", + "urls": [ + "bzz-raw://754884b828960f0be4d3a39b317db83c00b5011a9129efad6f38a9b768478834", + "dweb:/ipfs/QmfMpBmmPhFDoLpijBhScpK8GpvxzDkbK4Np9cbqLou7mJ" + ], + "license": "MIT" + }, + "src/v1/utils/ENSNamehash.sol": { + "keccak256": "0x23cfca6c28ed4e68d959700f2fd3fc497ea6b1d381298ef7749e97c1af849b88", + "urls": [ + "bzz-raw://3ff128bd602cc7851baeab3b7d60e42fc0943f43193c4f94aceb8e26a39710b7", + "dweb:/ipfs/QmRaDvU2HW4tirEuSjEDBP4z7UTSBx8FWGCLxUJdmZW5SP" + ], + "license": "MIT" + }, + "src/v2/InstanceRegistry.sol": { + "keccak256": "0xe64ee02ad33c182e9b78f5d5ebc868f753208d5d10a31785bccb81644778dbe7", + "urls": [ + "bzz-raw://a920f392c498cffdd07b5617108c85e544b4ee2d8431b64dcfb1d105cbc09e31", + "dweb:/ipfs/QmTQ3U8i6AF338jUVCedvVFjk4h9jNyAmY8WZQw9zT2Htz" + ], + "license": "MIT" + }, + "src/v2/TornadoRouter.sol": { + "keccak256": "0x40913fa941327535ccb0ff148f5c818ea64bedf5eed90309109d9bbeebbdc31f", + "urls": [ + "bzz-raw://a68dff41ca8f1619471cc07a9bcb3a09c30eeee7281297942b8c7d50ac78206e", + "dweb:/ipfs/QmdDNjreLjLn3B2wsw5YZ87h9VpX2bYEa18eJfv5pHE2uq" + ], + "license": "MIT" + }, + "src/v2/libraries/BytesUtils.sol": { + "keccak256": "0xf4f38d28724e3ef15b8bf80a00031406ebff8834b56380ed0db8c21f9d2980bc", + "urls": [ + "bzz-raw://904db267bad76d521e7aef6f7633db84fc6982a5e32bb1fa9ec849a6a540dd06", + "dweb:/ipfs/QmTuchPeqjcYuarfn2aQrSV36ady5c65TjTMkQg1KYGxVz" + ], + "license": "MIT" + }, + "src/v2/libraries/NameEncoder.sol": { + "keccak256": "0x86e5359d1c930794d87687de0eab0f76703493b2594fbc3a267d10e95a75d176", + "urls": [ + "bzz-raw://21fe140c0874b0df477cfd94abcf3894499488eaa5af6de88ab3efd4d2ee4ea4", + "dweb:/ipfs/Qmf646tAaiLeqTSWLTuLXXzW9mYt6VKdopgdtXn5KGHuGy" + ], + "license": "MIT" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/v2/TornadoRouter.sol", + "id": 39622, + "exportedSymbols": { + "TornadoRouter": [ + 39621 + ] + }, + "nodeType": "SourceUnit", + "src": "33:5731:67", + "nodes": [ + { + "id": 39217, + "nodeType": "PragmaDirective", + "src": "33:24:67", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.6", + ".12" + ] + }, + { + "id": 39218, + "nodeType": "PragmaDirective", + "src": "58:33:67", + "nodes": [], + "literals": [ + "experimental", + "ABIEncoderV2" + ] + }, + { + "id": 39220, + "nodeType": "ImportDirective", + "src": "108:72:67", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "scope": 39622, + "sourceUnit": 30240, + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 39219, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "117:6:67", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "id": 39222, + "nodeType": "ImportDirective", + "src": "181:80:67", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/proxy/Initializable.sol", + "file": "@openzeppelin/contracts/proxy/Initializable.sol", + "scope": 39622, + "sourceUnit": 29231, + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 39221, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "190:13:67", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "id": 39224, + "nodeType": "ImportDirective", + "src": "262:78:67", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol", + "scope": 39622, + "sourceUnit": 30453, + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 39223, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "271:9:67", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "id": 39226, + "nodeType": "ImportDirective", + "src": "341:61:67", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/math/Math.sol", + "file": "@openzeppelin/contracts/math/Math.sol", + "scope": 39622, + "sourceUnit": 28964, + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 39225, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "350:4:67", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "id": 39228, + "nodeType": "ImportDirective", + "src": "424:102:67", + "nodes": [], + "absolutePath": "lib/tornado-anonymity-mining/contracts/interfaces/ITornadoInstance.sol", + "file": "tornado-anonymity-mining/contracts/interfaces/ITornadoInstance.sol", + "scope": 39622, + "sourceUnit": 31585, + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 39227, + "name": "ITornadoInstance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "433:16:67", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "id": 39230, + "nodeType": "ImportDirective", + "src": "546:60:67", + "nodes": [], + "absolutePath": "src/v1/RelayerRegistry.sol", + "file": "../v1/RelayerRegistry.sol", + "scope": 39622, + "sourceUnit": 35364, + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 39229, + "name": "RelayerRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "555:15:67", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "id": 39233, + "nodeType": "ImportDirective", + "src": "607:72:67", + "nodes": [], + "absolutePath": "src/v2/InstanceRegistry.sol", + "file": "./InstanceRegistry.sol", + "scope": 39622, + "sourceUnit": 39216, + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 39231, + "name": "InstanceRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "616:16:67", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + }, + { + "foreign": { + "argumentTypes": null, + "id": 39232, + "name": "InstanceData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "634:12:67", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "id": 39621, + "nodeType": "ContractDefinition", + "src": "938:4825:67", + "nodes": [ + { + "id": 39239, + "nodeType": "UsingForDirective", + "src": "984:27:67", + "nodes": [], + "libraryName": { + "contractScope": null, + "id": 39237, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 30452, + "src": "990:9:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$30452", + "typeString": "library SafeERC20" + } + }, + "typeName": { + "contractScope": null, + "id": 39238, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 30239, + "src": "1004:6:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$30239", + "typeString": "contract IERC20" + } + } + }, + { + "id": 39241, + "nodeType": "VariableDeclaration", + "src": "1159:47:67", + "nodes": [], + "constant": false, + "functionSelector": "4655478f", + "mutability": "immutable", + "name": "governanceProxyAddress", + "overrides": null, + "scope": 39621, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39240, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1159:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "id": 39243, + "nodeType": "VariableDeclaration", + "src": "1250:40:67", + "nodes": [], + "constant": false, + "functionSelector": "36a3874b", + "mutability": "mutable", + "name": "instanceRegistry", + "overrides": null, + "scope": 39621, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_InstanceRegistry_$39215", + "typeString": "contract InstanceRegistry" + }, + "typeName": { + "contractScope": null, + "id": 39242, + "name": "InstanceRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 39215, + "src": "1250:16:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_InstanceRegistry_$39215", + "typeString": "contract InstanceRegistry" + } + }, + "value": null, + "visibility": "public" + }, + { + "id": 39245, + "nodeType": "VariableDeclaration", + "src": "1333:38:67", + "nodes": [], + "constant": false, + "functionSelector": "47ff589d", + "mutability": "mutable", + "name": "relayerRegistry", + "overrides": null, + "scope": 39621, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RelayerRegistry_$35363", + "typeString": "contract RelayerRegistry" + }, + "typeName": { + "contractScope": null, + "id": 39244, + "name": "RelayerRegistry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 35363, + "src": "1333:15:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RelayerRegistry_$35363", + "typeString": "contract RelayerRegistry" + } + }, + "value": null, + "visibility": "public" + }, + { + "id": 39251, + "nodeType": "EventDefinition", + "src": "1466:65:67", + "nodes": [], + "anonymous": false, + "documentation": null, + "name": "EncryptedNote", + "parameters": { + "id": 39250, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39247, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39251, + "src": "1486:22:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39246, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1486:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 39249, + "indexed": false, + "mutability": "mutable", + "name": "encryptedNote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39251, + "src": "1510:19:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 39248, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1510:5:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1485:45:67" + } + }, + { + "id": 39257, + "nodeType": "EventDefinition", + "src": "1536:61:67", + "nodes": [], + "anonymous": false, + "documentation": null, + "name": "TokenApproved", + "parameters": { + "id": 39256, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39253, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39257, + "src": "1556:23:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39252, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1556:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 39255, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39257, + "src": "1581:14:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39254, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1581:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1555:41:67" + } + }, + { + "id": 39261, + "nodeType": "EventDefinition", + "src": "1603:71:67", + "nodes": [], + "anonymous": false, + "documentation": null, + "name": "InstanceRegistryUpdated", + "parameters": { + "id": 39260, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39259, + "indexed": false, + "mutability": "mutable", + "name": "newInstanceRegistryProxyAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39261, + "src": "1633:39:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39258, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1633:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1632:41:67" + } + }, + { + "id": 39265, + "nodeType": "EventDefinition", + "src": "1679:69:67", + "nodes": [], + "anonymous": false, + "documentation": null, + "name": "RelayerRegistryUpdated", + "parameters": { + "id": 39264, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39263, + "indexed": false, + "mutability": "mutable", + "name": "newRelayerRegistryProxyAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39265, + "src": "1708:38:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39262, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1708:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1707:40:67" + } + }, + { + "id": 39275, + "nodeType": "FunctionDefinition", + "src": "1841:117:67", + "nodes": [], + "body": { + "id": 39274, + "nodeType": "Block", + "src": "1893:65:67", + "nodes": [], + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 39272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 39270, + "name": "governanceProxyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39241, + "src": "1903:22:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 39271, + "name": "_governanceProxyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39267, + "src": "1928:23:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1903:48:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 39273, + "nodeType": "ExpressionStatement", + "src": "1903:48:67" + } + ] + }, + "documentation": null, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "overrides": null, + "parameters": { + "id": 39268, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39267, + "mutability": "mutable", + "name": "_governanceProxyAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39275, + "src": "1853:31:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39266, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1853:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1852:33:67" + }, + "returnParameters": { + "id": 39269, + "nodeType": "ParameterList", + "parameters": [], + "src": "1893:0:67" + }, + "scope": 39621, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 39290, + "nodeType": "ModifierDefinition", + "src": "1964:147:67", + "nodes": [], + "body": { + "id": 39289, + "nodeType": "Block", + "src": "1996:115:67", + "nodes": [], + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 39284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 39278, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2014:3:67", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2014:10:67", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39282, + "name": "instanceRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39243, + "src": "2036:16:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_InstanceRegistry_$39215", + "typeString": "contract InstanceRegistry" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_InstanceRegistry_$39215", + "typeString": "contract InstanceRegistry" + } + ], + "id": 39281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2028:7:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 39280, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2028:7:67", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 39283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2028:25:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2014:39:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "546f726e61646f526f757465723a206f6e6c79496e7374616e63655265676973747279", + "id": 39285, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2055:37:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc744bc511b178eb6daf4baca1c3ed4deb9012277ccf044dc7d964a8eca3d5c1", + "typeString": "literal_string \"TornadoRouter: onlyInstanceRegistry\"" + }, + "value": "TornadoRouter: onlyInstanceRegistry" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc744bc511b178eb6daf4baca1c3ed4deb9012277ccf044dc7d964a8eca3d5c1", + "typeString": "literal_string \"TornadoRouter: onlyInstanceRegistry\"" + } + ], + "id": 39277, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2006:7:67", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 39286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2006:87:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39287, + "nodeType": "ExpressionStatement", + "src": "2006:87:67" + }, + { + "id": 39288, + "nodeType": "PlaceholderStatement", + "src": "2103:1:67" + } + ] + }, + "documentation": null, + "name": "onlyInstanceRegistry", + "overrides": null, + "parameters": { + "id": 39276, + "nodeType": "ParameterList", + "parameters": [], + "src": "1993:2:67" + }, + "virtual": false, + "visibility": "internal" + }, + { + "id": 39302, + "nodeType": "ModifierDefinition", + "src": "2117:132:67", + "nodes": [], + "body": { + "id": 39301, + "nodeType": "Block", + "src": "2143:106:67", + "nodes": [], + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 39296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 39293, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2161:3:67", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2161:10:67", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 39295, + "name": "governanceProxyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39241, + "src": "2175:22:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2161:36:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "546f726e61646f526f757465723a206f6e6c79476f7665726e616e6365", + "id": 39297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2199:31:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_01e26a90b7a663b3718d6ec87d56b8bbfcf84529983e8a6bf324666efe618e21", + "typeString": "literal_string \"TornadoRouter: onlyGovernance\"" + }, + "value": "TornadoRouter: onlyGovernance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_01e26a90b7a663b3718d6ec87d56b8bbfcf84529983e8a6bf324666efe618e21", + "typeString": "literal_string \"TornadoRouter: onlyGovernance\"" + } + ], + "id": 39292, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2153:7:67", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 39298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2153:78:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39299, + "nodeType": "ExpressionStatement", + "src": "2153:78:67" + }, + { + "id": 39300, + "nodeType": "PlaceholderStatement", + "src": "2241:1:67" + } + ] + }, + "documentation": null, + "name": "onlyGovernance", + "overrides": null, + "parameters": { + "id": 39291, + "nodeType": "ParameterList", + "parameters": [], + "src": "2140:2:67" + }, + "virtual": false, + "visibility": "internal" + }, + { + "id": 39326, + "nodeType": "FunctionDefinition", + "src": "2255:297:67", + "nodes": [], + "body": { + "id": 39325, + "nodeType": "Block", + "src": "2406:146:67", + "nodes": [], + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 39317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 39313, + "name": "instanceRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39243, + "src": "2416:16:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_InstanceRegistry_$39215", + "typeString": "contract InstanceRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39315, + "name": "_instanceRegistryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39304, + "src": "2452:24:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 39314, + "name": "InstanceRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39215, + "src": "2435:16:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_InstanceRegistry_$39215_$", + "typeString": "type(contract InstanceRegistry)" + } + }, + "id": 39316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2435:42:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_InstanceRegistry_$39215", + "typeString": "contract InstanceRegistry" + } + }, + "src": "2416:61:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_InstanceRegistry_$39215", + "typeString": "contract InstanceRegistry" + } + }, + "id": 39318, + "nodeType": "ExpressionStatement", + "src": "2416:61:67" + }, + { + "expression": { + "argumentTypes": null, + "id": 39323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 39319, + "name": "relayerRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39245, + "src": "2487:15:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RelayerRegistry_$35363", + "typeString": "contract RelayerRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39321, + "name": "_relayerRegistryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39306, + "src": "2521:23:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 39320, + "name": "RelayerRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35363, + "src": "2505:15:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_RelayerRegistry_$35363_$", + "typeString": "type(contract RelayerRegistry)" + } + }, + "id": 39322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2505:40:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_RelayerRegistry_$35363", + "typeString": "contract RelayerRegistry" + } + }, + "src": "2487:58:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RelayerRegistry_$35363", + "typeString": "contract RelayerRegistry" + } + }, + "id": 39324, + "nodeType": "ExpressionStatement", + "src": "2487:58:67" + } + ] + }, + "documentation": null, + "functionSelector": "485cc955", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 39309, + "modifierName": { + "argumentTypes": null, + "id": 39308, + "name": "onlyGovernance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39302, + "src": "2367:14:67", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2367:14:67" + }, + { + "arguments": null, + "id": 39311, + "modifierName": { + "argumentTypes": null, + "id": 39310, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29207, + "src": "2390:11:67", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2390:11:67" + } + ], + "name": "initialize", + "overrides": null, + "parameters": { + "id": 39307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39304, + "mutability": "mutable", + "name": "_instanceRegistryAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39326, + "src": "2275:32:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2275:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 39306, + "mutability": "mutable", + "name": "_relayerRegistryAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39326, + "src": "2309:31:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39305, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2309:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2274:67:67" + }, + "returnParameters": { + "id": 39312, + "nodeType": "ParameterList", + "parameters": [], + "src": "2406:0:67" + }, + "scope": 39621, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 39384, + "nodeType": "FunctionDefinition", + "src": "2558:558:67", + "nodes": [], + "body": { + "id": 39383, + "nodeType": "Block", + "src": "2705:411:67", + "nodes": [], + "statements": [ + { + "assignments": [ + 39336, + null, + 39338, + 39340 + ], + "declarations": [ + { + "constant": false, + "id": 39336, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39383, + "src": "2716:12:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$30239", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 39335, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 30239, + "src": "2716:6:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$30239", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + null, + { + "constant": false, + "id": 39338, + "mutability": "mutable", + "name": "isERC20", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39383, + "src": "2731:12:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 39337, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2731:4:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 39340, + "mutability": "mutable", + "name": "isEnabled", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39383, + "src": "2745:14:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 39339, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2745:4:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 39345, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39343, + "name": "_tornado", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39328, + "src": "2793:8:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITornadoInstance_$31584", + "typeString": "contract ITornadoInstance" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ITornadoInstance_$31584", + "typeString": "contract ITornadoInstance" + } + ], + "expression": { + "argumentTypes": null, + "id": 39341, + "name": "instanceRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39243, + "src": "2763:16:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_InstanceRegistry_$39215", + "typeString": "contract InstanceRegistry" + } + }, + "id": 39342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "instanceData", + "nodeType": "MemberAccess", + "referencedDeclaration": 38601, + "src": "2763:29:67", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_contract$_ITornadoInstance_$31584_$returns$_t_contract$_IERC20_$30239_$_t_uint80_$_t_bool_$_t_bool_$", + "typeString": "function (contract ITornadoInstance) view external returns (contract IERC20,uint80,bool,bool)" + } + }, + "id": 39344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2763:39:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_contract$_IERC20_$30239_$_t_uint80_$_t_bool_$_t_bool_$", + "typeString": "tuple(contract IERC20,uint80,bool,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2715:87:67" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39347, + "name": "isEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39340, + "src": "2821:9:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "546f726e61646f526f757465723a20696e7374616e6365206e6f7420656e61626c6564", + "id": 39348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2832:37:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5ea0a4a02b5291891cf0e13a2784b132079e53a05498a65d22a7faa4ba6e1fcc", + "typeString": "literal_string \"TornadoRouter: instance not enabled\"" + }, + "value": "TornadoRouter: instance not enabled" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5ea0a4a02b5291891cf0e13a2784b132079e53a05498a65d22a7faa4ba6e1fcc", + "typeString": "literal_string \"TornadoRouter: instance not enabled\"" + } + ], + "id": 39346, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2813:7:67", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 39349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2813:57:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39350, + "nodeType": "ExpressionStatement", + "src": "2813:57:67" + }, + { + "condition": { + "argumentTypes": null, + "id": 39351, + "name": "isERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39338, + "src": "2885:7:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 39367, + "nodeType": "IfStatement", + "src": "2881:112:67", + "trueBody": { + "id": 39366, + "nodeType": "Block", + "src": "2894:99:67", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 39355, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2931:3:67", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2931:10:67", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39359, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2951:4:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TornadoRouter_$39621", + "typeString": "contract TornadoRouter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TornadoRouter_$39621", + "typeString": "contract TornadoRouter" + } + ], + "id": 39358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2943:7:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 39357, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2943:7:67", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 39360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2943:13:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 39361, + "name": "_tornado", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39328, + "src": "2958:8:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITornadoInstance_$31584", + "typeString": "contract ITornadoInstance" + } + }, + "id": 39362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "denomination", + "nodeType": "MemberAccess", + "referencedDeclaration": 31561, + "src": "2958:21:67", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 39363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2958:23:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 39352, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39336, + "src": "2908:5:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$30239", + "typeString": "contract IERC20" + } + }, + "id": 39354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 30298, + "src": "2908:22:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$30239_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$30239_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 39364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2908:74:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39365, + "nodeType": "ExpressionStatement", + "src": "2908:74:67" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39374, + "name": "_commitment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39330, + "src": "3040:11:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 39368, + "name": "_tornado", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39328, + "src": "3003:8:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITornadoInstance_$31584", + "typeString": "contract ITornadoInstance" + } + }, + "id": 39370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 31566, + "src": "3003:16:67", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) payable external" + } + }, + "id": 39373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 39371, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3028:3:67", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3028:9:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "3003:36:67", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_bytes32_$returns$__$value", + "typeString": "function (bytes32) payable external" + } + }, + "id": 39375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3003:49:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39376, + "nodeType": "ExpressionStatement", + "src": "3003:49:67" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 39378, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3082:3:67", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3082:10:67", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 39380, + "name": "_encryptedNote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39332, + "src": "3094:14:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "id": 39377, + "name": "EncryptedNote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39251, + "src": "3068:13:67", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,bytes memory)" + } + }, + "id": 39381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3068:41:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39382, + "nodeType": "EmitStatement", + "src": "3063:46:67" + } + ] + }, + "documentation": null, + "functionSelector": "13d98d13", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deposit", + "overrides": null, + "parameters": { + "id": 39333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39328, + "mutability": "mutable", + "name": "_tornado", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39384, + "src": "2575:25:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITornadoInstance_$31584", + "typeString": "contract ITornadoInstance" + }, + "typeName": { + "contractScope": null, + "id": 39327, + "name": "ITornadoInstance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 31584, + "src": "2575:16:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITornadoInstance_$31584", + "typeString": "contract ITornadoInstance" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 39330, + "mutability": "mutable", + "name": "_commitment", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39384, + "src": "2602:19:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 39329, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2602:7:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 39332, + "mutability": "mutable", + "name": "_encryptedNote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39384, + "src": "2623:29:67", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 39331, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2623:5:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2574:79:67" + }, + "returnParameters": { + "id": 39334, + "nodeType": "ParameterList", + "parameters": [], + "src": "2705:0:67" + }, + "scope": 39621, + "stateMutability": "payable", + "virtual": true, + "visibility": "public" + }, + { + "id": 39440, + "nodeType": "FunctionDefinition", + "src": "3122:633:67", + "nodes": [], + "body": { + "id": 39439, + "nodeType": "Block", + "src": "3407:348:67", + "nodes": [], + "statements": [ + { + "assignments": [ + null, + null, + null, + 39404 + ], + "declarations": [ + null, + null, + null, + { + "constant": false, + "id": 39404, + "mutability": "mutable", + "name": "isEnabled", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39439, + "src": "3422:14:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 39403, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3422:4:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 39409, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39407, + "name": "_tornado", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39386, + "src": "3470:8:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITornadoInstance_$31584", + "typeString": "contract ITornadoInstance" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ITornadoInstance_$31584", + "typeString": "contract ITornadoInstance" + } + ], + "expression": { + "argumentTypes": null, + "id": 39405, + "name": "instanceRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39243, + "src": "3440:16:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_InstanceRegistry_$39215", + "typeString": "contract InstanceRegistry" + } + }, + "id": 39406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "instanceData", + "nodeType": "MemberAccess", + "referencedDeclaration": 38601, + "src": "3440:29:67", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_contract$_ITornadoInstance_$31584_$returns$_t_contract$_IERC20_$30239_$_t_uint80_$_t_bool_$_t_bool_$", + "typeString": "function (contract ITornadoInstance) view external returns (contract IERC20,uint80,bool,bool)" + } + }, + "id": 39408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3440:39:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_contract$_IERC20_$30239_$_t_uint80_$_t_bool_$_t_bool_$", + "typeString": "tuple(contract IERC20,uint80,bool,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3417:62:67" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39411, + "name": "isEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39404, + "src": "3498:9:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "546f726e61646f526f757465723a20696e7374616e6365206e6f7420656e61626c6564", + "id": 39412, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3509:37:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5ea0a4a02b5291891cf0e13a2784b132079e53a05498a65d22a7faa4ba6e1fcc", + "typeString": "literal_string \"TornadoRouter: instance not enabled\"" + }, + "value": "TornadoRouter: instance not enabled" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5ea0a4a02b5291891cf0e13a2784b132079e53a05498a65d22a7faa4ba6e1fcc", + "typeString": "literal_string \"TornadoRouter: instance not enabled\"" + } + ], + "id": 39410, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3490:7:67", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 39413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3490:57:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39414, + "nodeType": "ExpressionStatement", + "src": "3490:57:67" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 39418, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3579:3:67", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3579:10:67", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 39420, + "name": "_relayer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39396, + "src": "3591:8:67", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 39421, + "name": "_tornado", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39386, + "src": "3601:8:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITornadoInstance_$31584", + "typeString": "contract ITornadoInstance" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_contract$_ITornadoInstance_$31584", + "typeString": "contract ITornadoInstance" + } + ], + "expression": { + "argumentTypes": null, + "id": 39415, + "name": "relayerRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39245, + "src": "3558:15:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RelayerRegistry_$35363", + "typeString": "contract RelayerRegistry" + } + }, + "id": 39417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 35228, + "src": "3558:20:67", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_contract$_ITornadoInstance_$31584_$returns$__$", + "typeString": "function (address,address,contract ITornadoInstance) external" + } + }, + "id": 39422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3558:52:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39423, + "nodeType": "ExpressionStatement", + "src": "3558:52:67" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39430, + "name": "_proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39388, + "src": "3672:6:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "argumentTypes": null, + "id": 39431, + "name": "_root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39390, + "src": "3680:5:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 39432, + "name": "_nullifierHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39392, + "src": "3687:14:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 39433, + "name": "_recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39394, + "src": "3703:10:67", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 39434, + "name": "_relayer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39396, + "src": "3715:8:67", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 39435, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39398, + "src": "3725:4:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 39436, + "name": "_refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39400, + "src": "3731:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 39424, + "name": "_tornado", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39386, + "src": "3621:8:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITornadoInstance_$31584", + "typeString": "contract ITornadoInstance" + } + }, + "id": 39426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 31583, + "src": "3621:17:67", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_bytes32_$_t_bytes32_$_t_address_payable_$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (bytes memory,bytes32,bytes32,address payable,address payable,uint256,uint256) payable external" + } + }, + "id": 39429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 39427, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3647:3:67", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3647:9:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "3621:37:67", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_bytes32_$_t_bytes32_$_t_address_payable_$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$value", + "typeString": "function (bytes memory,bytes32,bytes32,address payable,address payable,uint256,uint256) payable external" + } + }, + "id": 39437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3621:127:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39438, + "nodeType": "ExpressionStatement", + "src": "3621:127:67" + } + ] + }, + "documentation": null, + "functionSelector": "b438689f", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "overrides": null, + "parameters": { + "id": 39401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39386, + "mutability": "mutable", + "name": "_tornado", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39440, + "src": "3149:25:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITornadoInstance_$31584", + "typeString": "contract ITornadoInstance" + }, + "typeName": { + "contractScope": null, + "id": 39385, + "name": "ITornadoInstance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 31584, + "src": "3149:16:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITornadoInstance_$31584", + "typeString": "contract ITornadoInstance" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 39388, + "mutability": "mutable", + "name": "_proof", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39440, + "src": "3184:21:67", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 39387, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3184:5:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 39390, + "mutability": "mutable", + "name": "_root", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39440, + "src": "3215:13:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 39389, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3215:7:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 39392, + "mutability": "mutable", + "name": "_nullifierHash", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39440, + "src": "3238:22:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 39391, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3238:7:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 39394, + "mutability": "mutable", + "name": "_recipient", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39440, + "src": "3270:26:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 39393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3270:15:67", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 39396, + "mutability": "mutable", + "name": "_relayer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39440, + "src": "3306:24:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 39395, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3306:15:67", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 39398, + "mutability": "mutable", + "name": "_fee", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39440, + "src": "3340:12:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39397, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3340:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 39400, + "mutability": "mutable", + "name": "_refund", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39440, + "src": "3362:15:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39399, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3362:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3139:244:67" + }, + "returnParameters": { + "id": 39402, + "nodeType": "ParameterList", + "parameters": [], + "src": "3407:0:67" + }, + "scope": 39621, + "stateMutability": "payable", + "virtual": true, + "visibility": "public" + }, + { + "id": 39468, + "nodeType": "FunctionDefinition", + "src": "3761:214:67", + "nodes": [], + "body": { + "id": 39467, + "nodeType": "Block", + "src": "3831:144:67", + "nodes": [], + "statements": [ + { + "body": { + "id": 39465, + "nodeType": "Block", + "src": "3894:75:67", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 39458, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3927:3:67", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3927:10:67", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 39460, + "name": "_encryptedNotes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39443, + "src": "3939:15:67", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + }, + "id": 39462, + "indexExpression": { + "argumentTypes": null, + "id": 39461, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39447, + "src": "3955:1:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3939:18:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "id": 39457, + "name": "EncryptedNote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39251, + "src": "3913:13:67", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,bytes memory)" + } + }, + "id": 39463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3913:45:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39464, + "nodeType": "EmitStatement", + "src": "3908:50:67" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 39453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 39450, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39447, + "src": "3861:1:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 39451, + "name": "_encryptedNotes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39443, + "src": "3865:15:67", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + }, + "id": 39452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3865:22:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3861:26:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39466, + "initializationExpression": { + "assignments": [ + 39447 + ], + "declarations": [ + { + "constant": false, + "id": 39447, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39466, + "src": "3846:9:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39446, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3846:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 39449, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 39448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3858:1:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3846:13:67" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 39455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3889:3:67", + "subExpression": { + "argumentTypes": null, + "id": 39454, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39447, + "src": "3889:1:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 39456, + "nodeType": "ExpressionStatement", + "src": "3889:3:67" + }, + "nodeType": "ForStatement", + "src": "3841:128:67" + } + ] + }, + "documentation": null, + "functionSelector": "6485ba2a", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "backupNotes", + "overrides": null, + "parameters": { + "id": 39444, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39443, + "mutability": "mutable", + "name": "_encryptedNotes", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39468, + "src": "3782:32:67", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 39441, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3782:5:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 39442, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3782:7:67", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3781:34:67" + }, + "returnParameters": { + "id": 39445, + "nodeType": "ParameterList", + "parameters": [], + "src": "3831:0:67" + }, + "scope": 39621, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 39552, + "nodeType": "FunctionDefinition", + "src": "3981:739:67", + "nodes": [], + "body": { + "id": 39551, + "nodeType": "Block", + "src": "4114:606:67", + "nodes": [], + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 39485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 39480, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39472, + "src": "4132:3:67", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 39483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4147:1:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 39482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4139:7:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 39481, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4139:7:67", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 39484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4139:10:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "4132:17:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "544f524e3a2063616e206e6f742073656e6420746f207a65726f2061646472657373", + "id": 39486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4151:36:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_da8d57b0dd733df825cfc05da618ee5096781f684eb785662a70edd786ac4e4f", + "typeString": "literal_string \"TORN: can not send to zero address\"" + }, + "value": "TORN: can not send to zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_da8d57b0dd733df825cfc05da618ee5096781f684eb785662a70edd786ac4e4f", + "typeString": "literal_string \"TORN: can not send to zero address\"" + } + ], + "id": 39479, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4124:7:67", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 39487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4124:64:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39488, + "nodeType": "ExpressionStatement", + "src": "4124:64:67" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20_$30239", + "typeString": "contract IERC20" + }, + "id": 39493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 39489, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39470, + "src": "4203:6:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$30239", + "typeString": "contract IERC20" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 39491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4220:1:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 39490, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30239, + "src": "4213:6:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$30239_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 39492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4213:9:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$30239", + "typeString": "contract IERC20" + } + }, + "src": "4203:19:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 39549, + "nodeType": "Block", + "src": "4422:292:67", + "statements": [ + { + "assignments": [ + 39518 + ], + "declarations": [ + { + "constant": false, + "id": 39518, + "mutability": "mutable", + "name": "totalBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39549, + "src": "4471:20:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39517, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4471:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 39526, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39523, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4519:4:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TornadoRouter_$39621", + "typeString": "contract TornadoRouter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TornadoRouter_$39621", + "typeString": "contract TornadoRouter" + } + ], + "id": 39522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4511:7:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 39521, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4511:7:67", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 39524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4511:13:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 39519, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39470, + "src": "4494:6:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$30239", + "typeString": "contract IERC20" + } + }, + "id": 39520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 30178, + "src": "4494:16:67", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 39525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4494:31:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4471:54:67" + }, + { + "assignments": [ + 39528 + ], + "declarations": [ + { + "constant": false, + "id": 39528, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39549, + "src": "4539:15:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39527, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4539:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 39534, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39531, + "name": "totalBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39518, + "src": "4566:12:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 39532, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39474, + "src": "4580:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 39529, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28963, + "src": "4557:4:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$28963_$", + "typeString": "type(library Math)" + } + }, + "id": 39530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 28929, + "src": "4557:8:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 39533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4557:31:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4539:49:67" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 39538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 39536, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39528, + "src": "4610:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 39537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4620:1:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4610:11:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "544f524e3a20747279696e6720746f2073656e6420302062616c616e6365", + "id": 39539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4623:32:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ef5568bcff8e2227b9a781f79a9b9557ab6926fbd248d437e304f821cea896f2", + "typeString": "literal_string \"TORN: trying to send 0 balance\"" + }, + "value": "TORN: trying to send 0 balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ef5568bcff8e2227b9a781f79a9b9557ab6926fbd248d437e304f821cea896f2", + "typeString": "literal_string \"TORN: trying to send 0 balance\"" + } + ], + "id": 39535, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4602:7:67", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 39540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4602:54:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39541, + "nodeType": "ExpressionStatement", + "src": "4602:54:67" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39545, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39472, + "src": "4690:3:67", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 39546, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39528, + "src": "4695:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 39542, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39470, + "src": "4670:6:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$30239", + "typeString": "contract IERC20" + } + }, + "id": 39544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 30273, + "src": "4670:19:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$30239_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$30239_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 39547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4670:33:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39548, + "nodeType": "ExpressionStatement", + "src": "4670:33:67" + } + ] + }, + "id": 39550, + "nodeType": "IfStatement", + "src": "4199:515:67", + "trueBody": { + "id": 39516, + "nodeType": "Block", + "src": "4224:192:67", + "statements": [ + { + "assignments": [ + 39495 + ], + "declarations": [ + { + "constant": false, + "id": 39495, + "mutability": "mutable", + "name": "totalBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39516, + "src": "4263:20:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4263:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 39501, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39498, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4294:4:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_TornadoRouter_$39621", + "typeString": "contract TornadoRouter" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_TornadoRouter_$39621", + "typeString": "contract TornadoRouter" + } + ], + "id": 39497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4286:7:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 39496, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4286:7:67", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 39499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4286:13:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 39500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4286:21:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4263:44:67" + }, + { + "assignments": [ + 39503 + ], + "declarations": [ + { + "constant": false, + "id": 39503, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39516, + "src": "4321:15:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39502, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4321:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 39509, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39506, + "name": "totalBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39495, + "src": "4348:12:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 39507, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39474, + "src": "4362:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 39504, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28963, + "src": "4339:4:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$28963_$", + "typeString": "type(library Math)" + } + }, + "id": 39505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 28929, + "src": "4339:8:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 39508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4339:31:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4321:49:67" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39513, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39503, + "src": "4397:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 39510, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39472, + "src": "4384:3:67", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 39512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4384:12:67", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 39514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4384:21:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39515, + "nodeType": "ExpressionStatement", + "src": "4384:21:67" + } + ] + } + } + ] + }, + "documentation": null, + "functionSelector": "cea9d26f", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 39477, + "modifierName": { + "argumentTypes": null, + "id": 39476, + "name": "onlyGovernance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39302, + "src": "4095:14:67", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4095:14:67" + } + ], + "name": "rescueTokens", + "overrides": null, + "parameters": { + "id": 39475, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39470, + "mutability": "mutable", + "name": "_token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39552, + "src": "4003:13:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$30239", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 39469, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 30239, + "src": "4003:6:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$30239", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 39472, + "mutability": "mutable", + "name": "_to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39552, + "src": "4018:19:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 39471, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4018:15:67", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 39474, + "mutability": "mutable", + "name": "_amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39552, + "src": "4039:15:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39473, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4039:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4002:53:67" + }, + "returnParameters": { + "id": 39478, + "nodeType": "ParameterList", + "parameters": [], + "src": "4114:0:67" + }, + "scope": 39621, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 39576, + "nodeType": "FunctionDefinition", + "src": "4815:234:67", + "nodes": [], + "body": { + "id": 39575, + "nodeType": "Block", + "src": "4948:101:67", + "nodes": [], + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39566, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39556, + "src": "4977:8:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 39567, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39558, + "src": "4987:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 39563, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39554, + "src": "4958:6:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$30239", + "typeString": "contract IERC20" + } + }, + "id": 39565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeApprove", + "nodeType": "MemberAccess", + "referencedDeclaration": 30341, + "src": "4958:18:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$30239_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$30239_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 39568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4958:37:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39569, + "nodeType": "ExpressionStatement", + "src": "4958:37:67" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39571, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39556, + "src": "5024:8:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 39572, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39558, + "src": "5034:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 39570, + "name": "TokenApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39257, + "src": "5010:13:67", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 39573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5010:32:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39574, + "nodeType": "EmitStatement", + "src": "5005:37:67" + } + ] + }, + "documentation": null, + "functionSelector": "4b704c97", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 39561, + "modifierName": { + "argumentTypes": null, + "id": 39560, + "name": "onlyInstanceRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39290, + "src": "4923:20:67", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4923:20:67" + } + ], + "name": "approveTokenForInstance", + "overrides": null, + "parameters": { + "id": 39559, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39554, + "mutability": "mutable", + "name": "_token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39576, + "src": "4848:13:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$30239", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 39553, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 30239, + "src": "4848:6:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$30239", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 39556, + "mutability": "mutable", + "name": "_spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39576, + "src": "4863:16:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39555, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4863:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 39558, + "mutability": "mutable", + "name": "_amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39576, + "src": "4881:15:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39557, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4881:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4847:50:67" + }, + "returnParameters": { + "id": 39562, + "nodeType": "ParameterList", + "parameters": [], + "src": "4948:0:67" + }, + "scope": 39621, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 39594, + "nodeType": "FunctionDefinition", + "src": "5055:253:67", + "nodes": [], + "body": { + "id": 39593, + "nodeType": "Block", + "src": "5150:158:67", + "nodes": [], + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 39587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 39583, + "name": "instanceRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39243, + "src": "5160:16:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_InstanceRegistry_$39215", + "typeString": "contract InstanceRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39585, + "name": "_newInstanceRegistryProxyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39578, + "src": "5196:32:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 39584, + "name": "InstanceRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39215, + "src": "5179:16:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_InstanceRegistry_$39215_$", + "typeString": "type(contract InstanceRegistry)" + } + }, + "id": 39586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5179:50:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_InstanceRegistry_$39215", + "typeString": "contract InstanceRegistry" + } + }, + "src": "5160:69:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_InstanceRegistry_$39215", + "typeString": "contract InstanceRegistry" + } + }, + "id": 39588, + "nodeType": "ExpressionStatement", + "src": "5160:69:67" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39590, + "name": "_newInstanceRegistryProxyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39578, + "src": "5268:32:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 39589, + "name": "InstanceRegistryUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39261, + "src": "5244:23:67", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 39591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5244:57:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39592, + "nodeType": "EmitStatement", + "src": "5239:62:67" + } + ] + }, + "documentation": null, + "functionSelector": "baaa2169", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 39581, + "modifierName": { + "argumentTypes": null, + "id": 39580, + "name": "onlyGovernance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39302, + "src": "5135:14:67", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5135:14:67" + } + ], + "name": "setInstanceRegistry", + "overrides": null, + "parameters": { + "id": 39579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39578, + "mutability": "mutable", + "name": "_newInstanceRegistryProxyAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39594, + "src": "5084:40:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5084:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5083:42:67" + }, + "returnParameters": { + "id": 39582, + "nodeType": "ParameterList", + "parameters": [], + "src": "5150:0:67" + }, + "scope": 39621, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 39612, + "nodeType": "FunctionDefinition", + "src": "5314:246:67", + "nodes": [], + "body": { + "id": 39611, + "nodeType": "Block", + "src": "5407:153:67", + "nodes": [], + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 39605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 39601, + "name": "relayerRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39245, + "src": "5417:15:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RelayerRegistry_$35363", + "typeString": "contract RelayerRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39603, + "name": "_newRelayerRegistryProxyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39596, + "src": "5451:31:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 39602, + "name": "RelayerRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35363, + "src": "5435:15:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_RelayerRegistry_$35363_$", + "typeString": "type(contract RelayerRegistry)" + } + }, + "id": 39604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5435:48:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_RelayerRegistry_$35363", + "typeString": "contract RelayerRegistry" + } + }, + "src": "5417:66:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RelayerRegistry_$35363", + "typeString": "contract RelayerRegistry" + } + }, + "id": 39606, + "nodeType": "ExpressionStatement", + "src": "5417:66:67" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 39608, + "name": "_newRelayerRegistryProxyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39596, + "src": "5521:31:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 39607, + "name": "RelayerRegistryUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39265, + "src": "5498:22:67", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 39609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5498:55:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39610, + "nodeType": "EmitStatement", + "src": "5493:60:67" + } + ] + }, + "documentation": null, + "functionSelector": "64cb2811", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 39599, + "modifierName": { + "argumentTypes": null, + "id": 39598, + "name": "onlyGovernance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39302, + "src": "5392:14:67", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5392:14:67" + } + ], + "name": "setRelayerRegistry", + "overrides": null, + "parameters": { + "id": 39597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39596, + "mutability": "mutable", + "name": "_newRelayerRegistryProxyAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39612, + "src": "5342:39:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5342:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5341:41:67" + }, + "returnParameters": { + "id": 39600, + "nodeType": "ParameterList", + "parameters": [], + "src": "5407:0:67" + }, + "scope": 39621, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 39620, + "nodeType": "FunctionDefinition", + "src": "5655:106:67", + "nodes": [], + "body": { + "id": 39619, + "nodeType": "Block", + "src": "5718:43:67", + "nodes": [], + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "76322d6f7261636c652d6d616e61676572", + "id": 39617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5735:19:67", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_34b45b9e37b59487530441f54f769d2f25a407cbe71ef48108dd8bf559dfae4c", + "typeString": "literal_string \"v2-oracle-manager\"" + }, + "value": "v2-oracle-manager" + }, + "functionReturnParameters": 39616, + "id": 39618, + "nodeType": "Return", + "src": "5728:26:67" + } + ] + }, + "documentation": null, + "functionSelector": "54fd4d50", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "version", + "overrides": null, + "parameters": { + "id": 39613, + "nodeType": "ParameterList", + "parameters": [], + "src": "5671:2:67" + }, + "returnParameters": { + "id": 39616, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39615, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 39620, + "src": "5703:13:67", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 39614, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5703:6:67", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5702:15:67" + }, + "scope": 39621, + "stateMutability": "pure", + "virtual": true, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 39235, + "name": "Initializable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 29230, + "src": "964:13:67", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$29230", + "typeString": "contract Initializable" + } + }, + "id": 39236, + "nodeType": "InheritanceSpecifier", + "src": "964:13:67" + } + ], + "contractDependencies": [ + 29230 + ], + "contractKind": "contract", + "documentation": { + "id": 39234, + "nodeType": "StructuredDocumentation", + "src": "681:256:67", + "text": " @title TornadoRouter\n @author AlienTornadosaurusHex\n @notice This contracts is a router for all Tornado Cash deposits and withdrawals\n @dev This is an improved version of the TornadoRouter with a modified design from the original contract." + }, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 39621, + 29230 + ], + "name": "TornadoRouter", + "scope": 39622 + } + ], + "license": "MIT" + }, + "id": 67 +} \ No newline at end of file diff --git a/docs/api/assets/highlight.css b/docs/api/assets/highlight.css index d0b0e3d..1f685b7 100644 --- a/docs/api/assets/highlight.css +++ b/docs/api/assets/highlight.css @@ -1,8 +1,8 @@ :root { - --light-hl-0: #000000; - --dark-hl-0: #D4D4D4; - --light-hl-1: #001080; - --dark-hl-1: #9CDCFE; + --light-hl-0: #001080; + --dark-hl-0: #9CDCFE; + --light-hl-1: #000000; + --dark-hl-1: #D4D4D4; --light-hl-2: #098658; --dark-hl-2: #B5CEA8; --light-hl-3: #0000FF; diff --git a/docs/api/assets/search.js b/docs/api/assets/search.js index ea22fba..a6bdbd8 100644 --- a/docs/api/assets/search.js +++ b/docs/api/assets/search.js @@ -1 +1 @@ -window.searchData = JSON.parse("{\"rows\":[{\"kind\":4,\"name\":\"Crypto\",\"url\":\"modules/Crypto.html\",\"classes\":\"\"},{\"kind\":4194304,\"name\":\"bigInt\",\"url\":\"types/Crypto.bigInt.html\",\"classes\":\"\",\"parent\":\"Crypto\"},{\"kind\":4,\"name\":\"OutputOf\",\"url\":\"modules/Crypto.OutputOf.html\",\"classes\":\"\",\"parent\":\"Crypto\"},{\"kind\":4194304,\"name\":\"PedersenHash\",\"url\":\"types/Crypto.OutputOf.PedersenHash.html\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf\"},{\"kind\":256,\"name\":\"CreateDeposit\",\"url\":\"interfaces/Crypto.OutputOf.CreateDeposit.html\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf\"},{\"kind\":1024,\"name\":\"nullifier\",\"url\":\"interfaces/Crypto.OutputOf.CreateDeposit.html#nullifier\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.CreateDeposit\"},{\"kind\":1024,\"name\":\"secret\",\"url\":\"interfaces/Crypto.OutputOf.CreateDeposit.html#secret\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.CreateDeposit\"},{\"kind\":1024,\"name\":\"preimage\",\"url\":\"interfaces/Crypto.OutputOf.CreateDeposit.html#preimage\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.CreateDeposit\"},{\"kind\":1024,\"name\":\"commitment\",\"url\":\"interfaces/Crypto.OutputOf.CreateDeposit.html#commitment\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.CreateDeposit\"},{\"kind\":1024,\"name\":\"hexCommitment\",\"url\":\"interfaces/Crypto.OutputOf.CreateDeposit.html#hexCommitment\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.CreateDeposit\"},{\"kind\":1024,\"name\":\"nullifierHash\",\"url\":\"interfaces/Crypto.OutputOf.CreateDeposit.html#nullifierHash\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.CreateDeposit\"},{\"kind\":1024,\"name\":\"hexNullifierHash\",\"url\":\"interfaces/Crypto.OutputOf.CreateDeposit.html#hexNullifierHash\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.CreateDeposit\"},{\"kind\":256,\"name\":\"MerkleProof\",\"url\":\"interfaces/Crypto.OutputOf.MerkleProof.html\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf\"},{\"kind\":1024,\"name\":\"root\",\"url\":\"interfaces/Crypto.OutputOf.MerkleProof.html#root\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.MerkleProof\"},{\"kind\":1024,\"name\":\"path\",\"url\":\"interfaces/Crypto.OutputOf.MerkleProof.html#path\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.MerkleProof\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Crypto.OutputOf.MerkleProof.html#path.__type\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.MerkleProof.path\"},{\"kind\":1024,\"name\":\"indices\",\"url\":\"interfaces/Crypto.OutputOf.MerkleProof.html#path.__type.indices\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.MerkleProof.path.__type\"},{\"kind\":1024,\"name\":\"elements\",\"url\":\"interfaces/Crypto.OutputOf.MerkleProof.html#path.__type.elements\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.MerkleProof.path.__type\"},{\"kind\":256,\"name\":\"Groth16Proof\",\"url\":\"interfaces/Crypto.OutputOf.Groth16Proof.html\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf\"},{\"kind\":1024,\"name\":\"pi_a\",\"url\":\"interfaces/Crypto.OutputOf.Groth16Proof.html#pi_a\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.Groth16Proof\"},{\"kind\":1024,\"name\":\"pi_b\",\"url\":\"interfaces/Crypto.OutputOf.Groth16Proof.html#pi_b\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.Groth16Proof\"},{\"kind\":1024,\"name\":\"pi_c\",\"url\":\"interfaces/Crypto.OutputOf.Groth16Proof.html#pi_c\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.Groth16Proof\"},{\"kind\":4194304,\"name\":\"MerkleProof\",\"url\":\"types/Crypto.MerkleProof.html\",\"classes\":\"\",\"parent\":\"Crypto\"},{\"kind\":4194304,\"name\":\"DepositProof\",\"url\":\"types/Crypto.DepositProof.html\",\"classes\":\"\",\"parent\":\"Crypto\"},{\"kind\":4,\"name\":\"InputFor\",\"url\":\"modules/Crypto.InputFor.html\",\"classes\":\"\",\"parent\":\"Crypto\"},{\"kind\":256,\"name\":\"PedersenHash\",\"url\":\"interfaces/Crypto.InputFor.PedersenHash.html\",\"classes\":\"\",\"parent\":\"Crypto.InputFor\"},{\"kind\":1024,\"name\":\"msg\",\"url\":\"interfaces/Crypto.InputFor.PedersenHash.html#msg\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.PedersenHash\"},{\"kind\":256,\"name\":\"CreateDeposit\",\"url\":\"interfaces/Crypto.InputFor.CreateDeposit.html\",\"classes\":\"\",\"parent\":\"Crypto.InputFor\"},{\"kind\":1024,\"name\":\"nullifier\",\"url\":\"interfaces/Crypto.InputFor.CreateDeposit.html#nullifier\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.CreateDeposit\"},{\"kind\":1024,\"name\":\"secret\",\"url\":\"interfaces/Crypto.InputFor.CreateDeposit.html#secret\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.CreateDeposit\"},{\"kind\":256,\"name\":\"BuildMerkleTree\",\"url\":\"interfaces/Crypto.InputFor.BuildMerkleTree.html\",\"classes\":\"\",\"parent\":\"Crypto.InputFor\"},{\"kind\":1024,\"name\":\"height\",\"url\":\"interfaces/Crypto.InputFor.BuildMerkleTree.html#height\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.BuildMerkleTree\"},{\"kind\":1024,\"name\":\"leaves\",\"url\":\"interfaces/Crypto.InputFor.BuildMerkleTree.html#leaves\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.BuildMerkleTree\"},{\"kind\":256,\"name\":\"DepositProof\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html\",\"classes\":\"\",\"parent\":\"Crypto.InputFor\"},{\"kind\":1024,\"name\":\"public\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public\"},{\"kind\":1024,\"name\":\"root\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1.root\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public.__type\"},{\"kind\":1024,\"name\":\"tree\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1.tree\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public.__type\"},{\"kind\":1024,\"name\":\"leafIndex\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1.leafIndex\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public.__type\"},{\"kind\":1024,\"name\":\"hexNullifierHash\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1.hexNullifierHash\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public.__type\"},{\"kind\":1024,\"name\":\"recipientAddress\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1.recipientAddress\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public.__type\"},{\"kind\":1024,\"name\":\"relayerAddress\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1.relayerAddress\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public.__type\"},{\"kind\":1024,\"name\":\"fee\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1.fee\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public.__type\"},{\"kind\":1024,\"name\":\"refund\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1.refund\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public.__type\"},{\"kind\":1024,\"name\":\"private\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#private\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#private.__type\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.private\"},{\"kind\":1024,\"name\":\"nullifier\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#private.__type.nullifier\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.private.__type\"},{\"kind\":1024,\"name\":\"secret\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#private.__type.secret\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.private.__type\"},{\"kind\":4194304,\"name\":\"Groth16\",\"url\":\"types/Crypto.InputFor.Groth16.html\",\"classes\":\"\",\"parent\":\"Crypto.InputFor\"},{\"kind\":4194304,\"name\":\"DepositInfo\",\"url\":\"types/Crypto.DepositInfo.html\",\"classes\":\"\",\"parent\":\"Crypto\"},{\"kind\":4,\"name\":\"Setup\",\"url\":\"modules/Crypto.Setup.html\",\"classes\":\"\",\"parent\":\"Crypto\"},{\"kind\":64,\"name\":\"getZeroElement\",\"url\":\"functions/Crypto.Setup.getZeroElement.html\",\"classes\":\"\",\"parent\":\"Crypto.Setup\"},{\"kind\":64,\"name\":\"getDefaultHash\",\"url\":\"functions/Crypto.Setup.getDefaultHash.html\",\"classes\":\"\",\"parent\":\"Crypto.Setup\"},{\"kind\":64,\"name\":\"getProvingKey\",\"url\":\"functions/Crypto.Setup.getProvingKey.html\",\"classes\":\"\",\"parent\":\"Crypto.Setup\"},{\"kind\":64,\"name\":\"getTornadoCircuit\",\"url\":\"functions/Crypto.Setup.getTornadoCircuit.html\",\"classes\":\"\",\"parent\":\"Crypto.Setup\"},{\"kind\":64,\"name\":\"getGroth16\",\"url\":\"functions/Crypto.Setup.getGroth16.html\",\"classes\":\"\",\"parent\":\"Crypto.Setup\"},{\"kind\":64,\"name\":\"terminateGroth16\",\"url\":\"functions/Crypto.Setup.terminateGroth16.html\",\"classes\":\"\",\"parent\":\"Crypto.Setup\"},{\"kind\":4,\"name\":\"Primitives\",\"url\":\"modules/Crypto.Primitives.html\",\"classes\":\"\",\"parent\":\"Crypto\"},{\"kind\":64,\"name\":\"calcPedersenHash\",\"url\":\"functions/Crypto.Primitives.calcPedersenHash.html\",\"classes\":\"\",\"parent\":\"Crypto.Primitives\"},{\"kind\":64,\"name\":\"createNote\",\"url\":\"functions/Crypto.Primitives.createNote.html\",\"classes\":\"\",\"parent\":\"Crypto.Primitives\"},{\"kind\":64,\"name\":\"parseNote\",\"url\":\"functions/Crypto.Primitives.parseNote.html\",\"classes\":\"\",\"parent\":\"Crypto.Primitives\"},{\"kind\":64,\"name\":\"createDeposit\",\"url\":\"functions/Crypto.Primitives.createDeposit.html\",\"classes\":\"\",\"parent\":\"Crypto.Primitives\"},{\"kind\":64,\"name\":\"buildMerkleTree\",\"url\":\"functions/Crypto.Primitives.buildMerkleTree.html\",\"classes\":\"\",\"parent\":\"Crypto.Primitives\"},{\"kind\":64,\"name\":\"calcDepositProofs\",\"url\":\"functions/Crypto.Primitives.calcDepositProofs.html\",\"classes\":\"\",\"parent\":\"Crypto.Primitives\"},{\"kind\":4,\"name\":\"Data\",\"url\":\"modules/Data.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"TornadoInstance\",\"url\":\"interfaces/Data.TornadoInstance.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":1024,\"name\":\"network\",\"url\":\"interfaces/Data.TornadoInstance.html#network\",\"classes\":\"\",\"parent\":\"Data.TornadoInstance\"},{\"kind\":1024,\"name\":\"symbol\",\"url\":\"interfaces/Data.TornadoInstance.html#symbol\",\"classes\":\"\",\"parent\":\"Data.TornadoInstance\"},{\"kind\":1024,\"name\":\"decimals\",\"url\":\"interfaces/Data.TornadoInstance.html#decimals\",\"classes\":\"\",\"parent\":\"Data.TornadoInstance\"},{\"kind\":1024,\"name\":\"denomination\",\"url\":\"interfaces/Data.TornadoInstance.html#denomination\",\"classes\":\"\",\"parent\":\"Data.TornadoInstance\"},{\"kind\":1024,\"name\":\"deployBlock\",\"url\":\"interfaces/Data.TornadoInstance.html#deployBlock\",\"classes\":\"\",\"parent\":\"Data.TornadoInstance\"},{\"kind\":1024,\"name\":\"address\",\"url\":\"interfaces/Data.TornadoInstance.html#address\",\"classes\":\"\",\"parent\":\"Data.TornadoInstance\"},{\"kind\":256,\"name\":\"ClassicInstance\",\"url\":\"interfaces/Data.ClassicInstance.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":1024,\"name\":\"anonymityMiningEnabled\",\"url\":\"interfaces/Data.ClassicInstance.html#anonymityMiningEnabled\",\"classes\":\"\",\"parent\":\"Data.ClassicInstance\"},{\"kind\":1024,\"name\":\"network\",\"url\":\"interfaces/Data.ClassicInstance.html#network\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.ClassicInstance\"},{\"kind\":1024,\"name\":\"symbol\",\"url\":\"interfaces/Data.ClassicInstance.html#symbol\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.ClassicInstance\"},{\"kind\":1024,\"name\":\"decimals\",\"url\":\"interfaces/Data.ClassicInstance.html#decimals\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.ClassicInstance\"},{\"kind\":1024,\"name\":\"denomination\",\"url\":\"interfaces/Data.ClassicInstance.html#denomination\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.ClassicInstance\"},{\"kind\":1024,\"name\":\"deployBlock\",\"url\":\"interfaces/Data.ClassicInstance.html#deployBlock\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.ClassicInstance\"},{\"kind\":1024,\"name\":\"address\",\"url\":\"interfaces/Data.ClassicInstance.html#address\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.ClassicInstance\"},{\"kind\":256,\"name\":\"TokenData\",\"url\":\"interfaces/Data.TokenData.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":1024,\"name\":\"network\",\"url\":\"interfaces/Data.TokenData.html#network\",\"classes\":\"\",\"parent\":\"Data.TokenData\"},{\"kind\":1024,\"name\":\"decimals\",\"url\":\"interfaces/Data.TokenData.html#decimals\",\"classes\":\"\",\"parent\":\"Data.TokenData\"},{\"kind\":1024,\"name\":\"address\",\"url\":\"interfaces/Data.TokenData.html#address\",\"classes\":\"\",\"parent\":\"Data.TokenData\"},{\"kind\":4,\"name\":\"Keys\",\"url\":\"modules/Data.Keys.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":256,\"name\":\"InstanceLookup\",\"url\":\"interfaces/Data.Keys.InstanceLookup.html\",\"classes\":\"\",\"parent\":\"Data.Keys\"},{\"kind\":1024,\"name\":\"network\",\"url\":\"interfaces/Data.Keys.InstanceLookup.html#network\",\"classes\":\"\",\"parent\":\"Data.Keys.InstanceLookup\"},{\"kind\":1024,\"name\":\"token\",\"url\":\"interfaces/Data.Keys.InstanceLookup.html#token\",\"classes\":\"\",\"parent\":\"Data.Keys.InstanceLookup\"},{\"kind\":1024,\"name\":\"denomination\",\"url\":\"interfaces/Data.Keys.InstanceLookup.html#denomination\",\"classes\":\"\",\"parent\":\"Data.Keys.InstanceLookup\"},{\"kind\":256,\"name\":\"RelayerProperties\",\"url\":\"interfaces/Data.RelayerProperties.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":1024,\"name\":\"address\",\"url\":\"interfaces/Data.RelayerProperties.html#address\",\"classes\":\"\",\"parent\":\"Data.RelayerProperties\"},{\"kind\":1024,\"name\":\"version\",\"url\":\"interfaces/Data.RelayerProperties.html#version\",\"classes\":\"\",\"parent\":\"Data.RelayerProperties\"},{\"kind\":1024,\"name\":\"serviceFeePercent\",\"url\":\"interfaces/Data.RelayerProperties.html#serviceFeePercent\",\"classes\":\"\",\"parent\":\"Data.RelayerProperties\"},{\"kind\":1024,\"name\":\"miningFeePercent\",\"url\":\"interfaces/Data.RelayerProperties.html#miningFeePercent\",\"classes\":\"\",\"parent\":\"Data.RelayerProperties\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/Data.RelayerProperties.html#status\",\"classes\":\"\",\"parent\":\"Data.RelayerProperties\"},{\"kind\":1024,\"name\":\"chainId\",\"url\":\"interfaces/Data.RelayerProperties.html#chainId\",\"classes\":\"\",\"parent\":\"Data.RelayerProperties\"},{\"kind\":1024,\"name\":\"prices\",\"url\":\"interfaces/Data.RelayerProperties.html#prices\",\"classes\":\"\",\"parent\":\"Data.RelayerProperties\"},{\"kind\":4,\"name\":\"Options\",\"url\":\"modules/Data.Options.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":256,\"name\":\"Cache\",\"url\":\"interfaces/Data.Options.Cache.html\",\"classes\":\"\",\"parent\":\"Data.Options\"},{\"kind\":1024,\"name\":\"adapter\",\"url\":\"interfaces/Data.Options.Cache.html#adapter\",\"classes\":\"\",\"parent\":\"Data.Options.Cache\"},{\"kind\":1024,\"name\":\"dirPath\",\"url\":\"interfaces/Data.Options.Cache.html#dirPath\",\"classes\":\"\",\"parent\":\"Data.Options.Cache\"},{\"kind\":1024,\"name\":\"persistent\",\"url\":\"interfaces/Data.Options.Cache.html#persistent\",\"classes\":\"\",\"parent\":\"Data.Options.Cache\"},{\"kind\":4,\"name\":\"Files\",\"url\":\"modules/Data.Files.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":64,\"name\":\"parentPath\",\"url\":\"functions/Data.Files.parentPath.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"stripExtensions\",\"url\":\"functions/Data.Files.stripExtensions.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"gzipSync\",\"url\":\"functions/Data.Files.gzipSync.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"gunzipSync\",\"url\":\"functions/Data.Files.gunzipSync.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"wipeCache\",\"url\":\"functions/Data.Files.wipeCache.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":4194304,\"name\":\"PathGetter\",\"url\":\"types/Data.Files.PathGetter.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/Data.Files.PathGetter.html#__type\",\"classes\":\"\",\"parent\":\"Data.Files.PathGetter\"},{\"kind\":64,\"name\":\"getModulesPath\",\"url\":\"functions/Data.Files.getModulesPath.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"getResourcePath\",\"url\":\"functions/Data.Files.getResourcePath.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"getCachePath\",\"url\":\"functions/Data.Files.getCachePath.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"cacheDirExists\",\"url\":\"functions/Data.Files.cacheDirExists.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"makeCacheDir\",\"url\":\"functions/Data.Files.makeCacheDir.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"loadRaw\",\"url\":\"functions/Data.Files.loadRaw.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"loadRawSync\",\"url\":\"functions/Data.Files.loadRawSync.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"writeRaw\",\"url\":\"functions/Data.Files.writeRaw.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"writeRawSync\",\"url\":\"functions/Data.Files.writeRawSync.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":4,\"name\":\"Json\",\"url\":\"modules/Data.Json.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":64,\"name\":\"load\",\"url\":\"functions/Data.Json.load.html\",\"classes\":\"\",\"parent\":\"Data.Json\"},{\"kind\":64,\"name\":\"loadSync\",\"url\":\"functions/Data.Json.loadSync.html\",\"classes\":\"\",\"parent\":\"Data.Json\"},{\"kind\":64,\"name\":\"toMap\",\"url\":\"functions/Data.Json.toMap.html\",\"classes\":\"\",\"parent\":\"Data.Json\"},{\"kind\":64,\"name\":\"loadMap\",\"url\":\"functions/Data.Json.loadMap.html\",\"classes\":\"\",\"parent\":\"Data.Json\"},{\"kind\":64,\"name\":\"getError\",\"url\":\"functions/Data.Json.getError.html\",\"classes\":\"\",\"parent\":\"Data.Json\"},{\"kind\":64,\"name\":\"throwError\",\"url\":\"functions/Data.Json.throwError.html\",\"classes\":\"\",\"parent\":\"Data.Json\"},{\"kind\":64,\"name\":\"getValue\",\"url\":\"functions/Data.Json.getValue.html\",\"classes\":\"\",\"parent\":\"Data.Json\"},{\"kind\":4,\"name\":\"Onchain\",\"url\":\"modules/Data.Onchain.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":64,\"name\":\"getClassicInstanceData\",\"url\":\"functions/Data.Onchain.getClassicInstanceData.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getClassicInstanceDataSync\",\"url\":\"functions/Data.Onchain.getClassicInstanceDataSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceLookupKeys\",\"url\":\"functions/Data.Onchain.getInstanceLookupKeys.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceLookupKeysSync\",\"url\":\"functions/Data.Onchain.getInstanceLookupKeysSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getPathstringBasedContent\",\"url\":\"functions/Data.Onchain.getPathstringBasedContent.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getPathstringBasedContentSync\",\"url\":\"functions/Data.Onchain.getPathstringBasedContentSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getNetworkSymbol\",\"url\":\"functions/Data.Onchain.getNetworkSymbol.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getNetworkSymbolSync\",\"url\":\"functions/Data.Onchain.getNetworkSymbolSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceAddresses\",\"url\":\"functions/Data.Onchain.getInstanceAddresses.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceAddressesSync\",\"url\":\"functions/Data.Onchain.getInstanceAddressesSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceAddress\",\"url\":\"functions/Data.Onchain.getInstanceAddress.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceAddressSync\",\"url\":\"functions/Data.Onchain.getInstanceAddressSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getRegistryAddress\",\"url\":\"functions/Data.Onchain.getRegistryAddress.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getRegistryAddressSync\",\"url\":\"functions/Data.Onchain.getRegistryAddressSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getRegistryDeployBlockNum\",\"url\":\"functions/Data.Onchain.getRegistryDeployBlockNum.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getRegistryDeployBlockNumSync\",\"url\":\"functions/Data.Onchain.getRegistryDeployBlockNumSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceDeployBlockNums\",\"url\":\"functions/Data.Onchain.getInstanceDeployBlockNums.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceDeployBlockNumsSync\",\"url\":\"functions/Data.Onchain.getInstanceDeployBlockNumsSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceDeployBlockNum\",\"url\":\"functions/Data.Onchain.getInstanceDeployBlockNum.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceDeployBlockNumSync\",\"url\":\"functions/Data.Onchain.getInstanceDeployBlockNumSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getProxyAddress\",\"url\":\"functions/Data.Onchain.getProxyAddress.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getMulticallAddress\",\"url\":\"functions/Data.Onchain.getMulticallAddress.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getMulticall3Address\",\"url\":\"functions/Data.Onchain.getMulticall3Address.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getProxyAddressSync\",\"url\":\"functions/Data.Onchain.getProxyAddressSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getMulticallAddressSync\",\"url\":\"functions/Data.Onchain.getMulticallAddressSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getMulticall3AddressSync\",\"url\":\"functions/Data.Onchain.getMulticall3AddressSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getTokenAddress\",\"url\":\"functions/Data.Onchain.getTokenAddress.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getTokenAddressSync\",\"url\":\"functions/Data.Onchain.getTokenAddressSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getTokenDecimals\",\"url\":\"functions/Data.Onchain.getTokenDecimals.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getTokenDecimalsSync\",\"url\":\"functions/Data.Onchain.getTokenDecimalsSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":4,\"name\":\"Offchain\",\"url\":\"modules/Data.Offchain.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":64,\"name\":\"getUncensoredRpcURL\",\"url\":\"functions/Data.Offchain.getUncensoredRpcURL.html\",\"classes\":\"\",\"parent\":\"Data.Offchain\"},{\"kind\":64,\"name\":\"getUncensoredRpcURLSync\",\"url\":\"functions/Data.Offchain.getUncensoredRpcURLSync.html\",\"classes\":\"\",\"parent\":\"Data.Offchain\"},{\"kind\":64,\"name\":\"getClassicSubgraphURL\",\"url\":\"functions/Data.Offchain.getClassicSubgraphURL.html\",\"classes\":\"\",\"parent\":\"Data.Offchain\"},{\"kind\":64,\"name\":\"getClassicSubgraphURLSync\",\"url\":\"functions/Data.Offchain.getClassicSubgraphURLSync.html\",\"classes\":\"\",\"parent\":\"Data.Offchain\"},{\"kind\":4,\"name\":\"Constants\",\"url\":\"modules/Data.Constants.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":32,\"name\":\"MERKLE_TREE_HEIGHT\",\"url\":\"variables/Data.Constants.MERKLE_TREE_HEIGHT.html\",\"classes\":\"\",\"parent\":\"Data.Constants\"},{\"kind\":4,\"name\":\"Docs\",\"url\":\"modules/Data.Docs.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":128,\"name\":\"Base\",\"url\":\"classes/Data.Docs.Base.html\",\"classes\":\"\",\"parent\":\"Data.Docs\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Data.Docs.Base.html#constructor\",\"classes\":\"\",\"parent\":\"Data.Docs.Base\"},{\"kind\":1024,\"name\":\"_id\",\"url\":\"classes/Data.Docs.Base.html#_id\",\"classes\":\"\",\"parent\":\"Data.Docs.Base\"},{\"kind\":1024,\"name\":\"_rev\",\"url\":\"classes/Data.Docs.Base.html#_rev\",\"classes\":\"\",\"parent\":\"Data.Docs.Base\"},{\"kind\":128,\"name\":\"Deposit\",\"url\":\"classes/Data.Docs.Deposit.html\",\"classes\":\"\",\"parent\":\"Data.Docs\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Data.Docs.Deposit.html#constructor\",\"classes\":\"\",\"parent\":\"Data.Docs.Deposit\"},{\"kind\":1024,\"name\":\"blockNumber\",\"url\":\"classes/Data.Docs.Deposit.html#blockNumber\",\"classes\":\"\",\"parent\":\"Data.Docs.Deposit\"},{\"kind\":1024,\"name\":\"leafIndex\",\"url\":\"classes/Data.Docs.Deposit.html#leafIndex\",\"classes\":\"\",\"parent\":\"Data.Docs.Deposit\"},{\"kind\":1024,\"name\":\"commitment\",\"url\":\"classes/Data.Docs.Deposit.html#commitment\",\"classes\":\"\",\"parent\":\"Data.Docs.Deposit\"},{\"kind\":1024,\"name\":\"transactionHash\",\"url\":\"classes/Data.Docs.Deposit.html#transactionHash\",\"classes\":\"\",\"parent\":\"Data.Docs.Deposit\"},{\"kind\":1024,\"name\":\"timestamp\",\"url\":\"classes/Data.Docs.Deposit.html#timestamp\",\"classes\":\"\",\"parent\":\"Data.Docs.Deposit\"},{\"kind\":1024,\"name\":\"_id\",\"url\":\"classes/Data.Docs.Deposit.html#_id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Deposit\"},{\"kind\":1024,\"name\":\"_rev\",\"url\":\"classes/Data.Docs.Deposit.html#_rev\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Deposit\"},{\"kind\":128,\"name\":\"Withdrawal\",\"url\":\"classes/Data.Docs.Withdrawal.html\",\"classes\":\"\",\"parent\":\"Data.Docs\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Data.Docs.Withdrawal.html#constructor\",\"classes\":\"\",\"parent\":\"Data.Docs.Withdrawal\"},{\"kind\":1024,\"name\":\"blockNumber\",\"url\":\"classes/Data.Docs.Withdrawal.html#blockNumber\",\"classes\":\"\",\"parent\":\"Data.Docs.Withdrawal\"},{\"kind\":1024,\"name\":\"to\",\"url\":\"classes/Data.Docs.Withdrawal.html#to\",\"classes\":\"\",\"parent\":\"Data.Docs.Withdrawal\"},{\"kind\":1024,\"name\":\"nullifierHash\",\"url\":\"classes/Data.Docs.Withdrawal.html#nullifierHash\",\"classes\":\"\",\"parent\":\"Data.Docs.Withdrawal\"},{\"kind\":1024,\"name\":\"transactionHash\",\"url\":\"classes/Data.Docs.Withdrawal.html#transactionHash\",\"classes\":\"\",\"parent\":\"Data.Docs.Withdrawal\"},{\"kind\":1024,\"name\":\"fee\",\"url\":\"classes/Data.Docs.Withdrawal.html#fee\",\"classes\":\"\",\"parent\":\"Data.Docs.Withdrawal\"},{\"kind\":1024,\"name\":\"_id\",\"url\":\"classes/Data.Docs.Withdrawal.html#_id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Withdrawal\"},{\"kind\":1024,\"name\":\"_rev\",\"url\":\"classes/Data.Docs.Withdrawal.html#_rev\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Withdrawal\"},{\"kind\":128,\"name\":\"Note\",\"url\":\"classes/Data.Docs.Note.html\",\"classes\":\"\",\"parent\":\"Data.Docs\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Data.Docs.Note.html#constructor\",\"classes\":\"\",\"parent\":\"Data.Docs.Note\"},{\"kind\":1024,\"name\":\"network\",\"url\":\"classes/Data.Docs.Note.html#network\",\"classes\":\"\",\"parent\":\"Data.Docs.Note\"},{\"kind\":1024,\"name\":\"token\",\"url\":\"classes/Data.Docs.Note.html#token\",\"classes\":\"\",\"parent\":\"Data.Docs.Note\"},{\"kind\":1024,\"name\":\"denomination\",\"url\":\"classes/Data.Docs.Note.html#denomination\",\"classes\":\"\",\"parent\":\"Data.Docs.Note\"},{\"kind\":1024,\"name\":\"note\",\"url\":\"classes/Data.Docs.Note.html#note\",\"classes\":\"\",\"parent\":\"Data.Docs.Note\"},{\"kind\":1024,\"name\":\"_id\",\"url\":\"classes/Data.Docs.Note.html#_id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Note\"},{\"kind\":1024,\"name\":\"_rev\",\"url\":\"classes/Data.Docs.Note.html#_rev\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Note\"},{\"kind\":128,\"name\":\"Invoice\",\"url\":\"classes/Data.Docs.Invoice.html\",\"classes\":\"\",\"parent\":\"Data.Docs\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Data.Docs.Invoice.html#constructor\",\"classes\":\"\",\"parent\":\"Data.Docs.Invoice\"},{\"kind\":1024,\"name\":\"network\",\"url\":\"classes/Data.Docs.Invoice.html#network\",\"classes\":\"\",\"parent\":\"Data.Docs.Invoice\"},{\"kind\":1024,\"name\":\"token\",\"url\":\"classes/Data.Docs.Invoice.html#token\",\"classes\":\"\",\"parent\":\"Data.Docs.Invoice\"},{\"kind\":1024,\"name\":\"denomination\",\"url\":\"classes/Data.Docs.Invoice.html#denomination\",\"classes\":\"\",\"parent\":\"Data.Docs.Invoice\"},{\"kind\":1024,\"name\":\"invoice\",\"url\":\"classes/Data.Docs.Invoice.html#invoice\",\"classes\":\"\",\"parent\":\"Data.Docs.Invoice\"},{\"kind\":1024,\"name\":\"_id\",\"url\":\"classes/Data.Docs.Invoice.html#_id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Invoice\"},{\"kind\":1024,\"name\":\"_rev\",\"url\":\"classes/Data.Docs.Invoice.html#_rev\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Invoice\"},{\"kind\":128,\"name\":\"Relayer\",\"url\":\"classes/Data.Docs.Relayer.html\",\"classes\":\"\",\"parent\":\"Data.Docs\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Data.Docs.Relayer.html#constructor\",\"classes\":\"\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"address\",\"url\":\"classes/Data.Docs.Relayer.html#address\",\"classes\":\"\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"version\",\"url\":\"classes/Data.Docs.Relayer.html#version\",\"classes\":\"\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"serviceFeePercent\",\"url\":\"classes/Data.Docs.Relayer.html#serviceFeePercent\",\"classes\":\"\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"miningFeePercent\",\"url\":\"classes/Data.Docs.Relayer.html#miningFeePercent\",\"classes\":\"\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"classes/Data.Docs.Relayer.html#status\",\"classes\":\"\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"chainId\",\"url\":\"classes/Data.Docs.Relayer.html#chainId\",\"classes\":\"\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"prices\",\"url\":\"classes/Data.Docs.Relayer.html#prices\",\"classes\":\"\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"_id\",\"url\":\"classes/Data.Docs.Relayer.html#_id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"_rev\",\"url\":\"classes/Data.Docs.Relayer.html#_rev\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":4,\"name\":\"Cache\",\"url\":\"modules/Data.Cache.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":128,\"name\":\"Base\",\"url\":\"classes/Data.Cache.Base.html\",\"classes\":\"\",\"parent\":\"Data.Cache\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Data.Cache.Base.html#constructor\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":1024,\"name\":\"_adapter\",\"url\":\"classes/Data.Cache.Base.html#_adapter\",\"classes\":\"tsd-is-private\",\"parent\":\"Data.Cache.Base\"},{\"kind\":1024,\"name\":\"_path\",\"url\":\"classes/Data.Cache.Base.html#_path\",\"classes\":\"tsd-is-private\",\"parent\":\"Data.Cache.Base\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/Data.Cache.Base.html#name\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":1024,\"name\":\"isOpen\",\"url\":\"classes/Data.Cache.Base.html#isOpen\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":1024,\"name\":\"db\",\"url\":\"classes/Data.Cache.Base.html#db\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":1024,\"name\":\"_unzip\",\"url\":\"classes/Data.Cache.Base.html#_unzip\",\"classes\":\"tsd-is-private\",\"parent\":\"Data.Cache.Base\"},{\"kind\":2048,\"name\":\"zip\",\"url\":\"classes/Data.Cache.Base.html#zip\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":2048,\"name\":\"jsonify\",\"url\":\"classes/Data.Cache.Base.html#jsonify\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/Data.Cache.Base.html#get\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":2048,\"name\":\"getRows\",\"url\":\"classes/Data.Cache.Base.html#getRows\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":2048,\"name\":\"close\",\"url\":\"classes/Data.Cache.Base.html#close\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":2048,\"name\":\"clear\",\"url\":\"classes/Data.Cache.Base.html#clear\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":128,\"name\":\"Syncable\",\"url\":\"classes/Data.Cache.Syncable.html\",\"classes\":\"\",\"parent\":\"Data.Cache\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Data.Cache.Syncable.html#constructor\",\"classes\":\"\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":1024,\"name\":\"pooler\",\"url\":\"classes/Data.Cache.Syncable.html#pooler\",\"classes\":\"\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"buildDoc\",\"url\":\"classes/Data.Cache.Syncable.html#buildDoc\",\"classes\":\"\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"getCallbacks\",\"url\":\"classes/Data.Cache.Syncable.html#getCallbacks\",\"classes\":\"\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"getErrorHandlers\",\"url\":\"classes/Data.Cache.Syncable.html#getErrorHandlers\",\"classes\":\"\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"initializePooler\",\"url\":\"classes/Data.Cache.Syncable.html#initializePooler\",\"classes\":\"\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"close\",\"url\":\"classes/Data.Cache.Syncable.html#close\",\"classes\":\"\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"clear\",\"url\":\"classes/Data.Cache.Syncable.html#clear\",\"classes\":\"\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/Data.Cache.Syncable.html#name\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":1024,\"name\":\"isOpen\",\"url\":\"classes/Data.Cache.Syncable.html#isOpen\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":1024,\"name\":\"db\",\"url\":\"classes/Data.Cache.Syncable.html#db\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"zip\",\"url\":\"classes/Data.Cache.Syncable.html#zip\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"jsonify\",\"url\":\"classes/Data.Cache.Syncable.html#jsonify\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/Data.Cache.Syncable.html#get\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"getRows\",\"url\":\"classes/Data.Cache.Syncable.html#getRows\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":4,\"name\":\"Network\",\"url\":\"modules/Network.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"syncErrorHandler\",\"url\":\"functions/Network.syncErrorHandler.html\",\"classes\":\"\",\"parent\":\"Network\"},{\"kind\":4194304,\"name\":\"TornadoContracts\",\"url\":\"types/Network.TornadoContracts.html\",\"classes\":\"\",\"parent\":\"Network\"},{\"kind\":4,\"name\":\"Options\",\"url\":\"modules/Network.Options.html\",\"classes\":\"\",\"parent\":\"Network\"},{\"kind\":256,\"name\":\"Sync\",\"url\":\"interfaces/Network.Options.Sync.html\",\"classes\":\"\",\"parent\":\"Network.Options\"},{\"kind\":1024,\"name\":\"startBlock\",\"url\":\"interfaces/Network.Options.Sync.html#startBlock\",\"classes\":\"\",\"parent\":\"Network.Options.Sync\"},{\"kind\":1024,\"name\":\"targetBlock\",\"url\":\"interfaces/Network.Options.Sync.html#targetBlock\",\"classes\":\"\",\"parent\":\"Network.Options.Sync\"},{\"kind\":1024,\"name\":\"blockDelta\",\"url\":\"interfaces/Network.Options.Sync.html#blockDelta\",\"classes\":\"\",\"parent\":\"Network.Options.Sync\"},{\"kind\":1024,\"name\":\"blockDivisor\",\"url\":\"interfaces/Network.Options.Sync.html#blockDivisor\",\"classes\":\"\",\"parent\":\"Network.Options.Sync\"},{\"kind\":1024,\"name\":\"concurrencyLimit\",\"url\":\"interfaces/Network.Options.Sync.html#concurrencyLimit\",\"classes\":\"\",\"parent\":\"Network.Options.Sync\"},{\"kind\":1024,\"name\":\"msTimeout\",\"url\":\"interfaces/Network.Options.Sync.html#msTimeout\",\"classes\":\"\",\"parent\":\"Network.Options.Sync\"},{\"kind\":1024,\"name\":\"listenForEvents\",\"url\":\"interfaces/Network.Options.Sync.html#listenForEvents\",\"classes\":\"\",\"parent\":\"Network.Options.Sync\"},{\"kind\":4194304,\"name\":\"Cache\",\"url\":\"types/Network.Options.Cache.html\",\"classes\":\"\",\"parent\":\"Network.Options\"},{\"kind\":128,\"name\":\"Chain\",\"url\":\"classes/Network.Chain.html\",\"classes\":\"\",\"parent\":\"Network\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Network.Chain.html#constructor\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":1024,\"name\":\"provider\",\"url\":\"classes/Network.Chain.html#provider\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":1024,\"name\":\"_emptySigner\",\"url\":\"classes/Network.Chain.html#_emptySigner\",\"classes\":\"tsd-is-private\",\"parent\":\"Network.Chain\"},{\"kind\":1024,\"name\":\"_signer\",\"url\":\"classes/Network.Chain.html#_signer\",\"classes\":\"tsd-is-private\",\"parent\":\"Network.Chain\"},{\"kind\":1024,\"name\":\"_chainId\",\"url\":\"classes/Network.Chain.html#_chainId\",\"classes\":\"tsd-is-private\",\"parent\":\"Network.Chain\"},{\"kind\":1024,\"name\":\"_symbol\",\"url\":\"classes/Network.Chain.html#_symbol\",\"classes\":\"tsd-is-private\",\"parent\":\"Network.Chain\"},{\"kind\":1024,\"name\":\"_fetched\",\"url\":\"classes/Network.Chain.html#_fetched\",\"classes\":\"tsd-is-private\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"connectSigner\",\"url\":\"classes/Network.Chain.html#connectSigner\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"fetchChainData\",\"url\":\"classes/Network.Chain.html#fetchChainData\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":1024,\"name\":\"_signerConnected\",\"url\":\"classes/Network.Chain.html#_signerConnected\",\"classes\":\"tsd-is-private\",\"parent\":\"Network.Chain\"},{\"kind\":1024,\"name\":\"_propertiesFetched\",\"url\":\"classes/Network.Chain.html#_propertiesFetched\",\"classes\":\"tsd-is-private\",\"parent\":\"Network.Chain\"},{\"kind\":262144,\"name\":\"signer\",\"url\":\"classes/Network.Chain.html#signer\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":262144,\"name\":\"id\",\"url\":\"classes/Network.Chain.html#id\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":262144,\"name\":\"symbol\",\"url\":\"classes/Network.Chain.html#symbol\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"latestBlockNum\",\"url\":\"classes/Network.Chain.html#latestBlockNum\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"getAccountBalance\",\"url\":\"classes/Network.Chain.html#getAccountBalance\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"getGasPrice\",\"url\":\"classes/Network.Chain.html#getGasPrice\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"getTokenContract\",\"url\":\"classes/Network.Chain.html#getTokenContract\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"getTokenDecimals\",\"url\":\"classes/Network.Chain.html#getTokenDecimals\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"getTokenBalance\",\"url\":\"classes/Network.Chain.html#getTokenBalance\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"populateBatchCall\",\"url\":\"classes/Network.Chain.html#populateBatchCall\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"batchCall\",\"url\":\"classes/Network.Chain.html#batchCall\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":4,\"name\":\"Contracts\",\"url\":\"modules/Network.Contracts.html\",\"classes\":\"\",\"parent\":\"Network\"},{\"kind\":64,\"name\":\"getProxy\",\"url\":\"functions/Network.Contracts.getProxy.html\",\"classes\":\"\",\"parent\":\"Network.Contracts\"},{\"kind\":64,\"name\":\"getRegistry\",\"url\":\"functions/Network.Contracts.getRegistry.html\",\"classes\":\"\",\"parent\":\"Network.Contracts\"},{\"kind\":64,\"name\":\"getInstance\",\"url\":\"functions/Network.Contracts.getInstance.html\",\"classes\":\"\",\"parent\":\"Network.Contracts\"},{\"kind\":64,\"name\":\"getToken\",\"url\":\"functions/Network.Contracts.getToken.html\",\"classes\":\"\",\"parent\":\"Network.Contracts\"},{\"kind\":64,\"name\":\"getTornToken\",\"url\":\"functions/Network.Contracts.getTornToken.html\",\"classes\":\"\",\"parent\":\"Network.Contracts\"},{\"kind\":128,\"name\":\"Synchronizer\",\"url\":\"classes/Network.Synchronizer.html\",\"classes\":\"\",\"parent\":\"Network\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Network.Synchronizer.html#constructor\",\"classes\":\"\",\"parent\":\"Network.Synchronizer\"},{\"kind\":1024,\"name\":\"caches\",\"url\":\"classes/Network.Synchronizer.html#caches\",\"classes\":\"\",\"parent\":\"Network.Synchronizer\"},{\"kind\":2048,\"name\":\"sync\",\"url\":\"classes/Network.Synchronizer.html#sync\",\"classes\":\"\",\"parent\":\"Network.Synchronizer\"},{\"kind\":2048,\"name\":\"loadCache\",\"url\":\"classes/Network.Synchronizer.html#loadCache\",\"classes\":\"\",\"parent\":\"Network.Synchronizer\"},{\"kind\":2048,\"name\":\"listenForEvents\",\"url\":\"classes/Network.Synchronizer.html#listenForEvents\",\"classes\":\"\",\"parent\":\"Network.Synchronizer\"},{\"kind\":2048,\"name\":\"clearListenerByIndex\",\"url\":\"classes/Network.Synchronizer.html#clearListenerByIndex\",\"classes\":\"\",\"parent\":\"Network.Synchronizer\"},{\"kind\":2048,\"name\":\"_populateSyncOptions\",\"url\":\"classes/Network.Synchronizer.html#_populateSyncOptions\",\"classes\":\"tsd-is-protected\",\"parent\":\"Network.Synchronizer\"},{\"kind\":4,\"name\":\"Web\",\"url\":\"modules/Web.html\",\"classes\":\"\"},{\"kind\":4,\"name\":\"Options\",\"url\":\"modules/Web.Options.html\",\"classes\":\"\",\"parent\":\"Web\"},{\"kind\":256,\"name\":\"Relayer\",\"url\":\"interfaces/Web.Options.Relayer.html\",\"classes\":\"\",\"parent\":\"Web.Options\"},{\"kind\":1024,\"name\":\"url\",\"url\":\"interfaces/Web.Options.Relayer.html#url\",\"classes\":\"\",\"parent\":\"Web.Options.Relayer\"},{\"kind\":1024,\"name\":\"httpClient\",\"url\":\"interfaces/Web.Options.Relayer.html#httpClient\",\"classes\":\"\",\"parent\":\"Web.Options.Relayer\"},{\"kind\":256,\"name\":\"WithdrawalRequestResult\",\"url\":\"interfaces/Web.WithdrawalRequestResult.html\",\"classes\":\"\",\"parent\":\"Web\"},{\"kind\":1024,\"name\":\"success\",\"url\":\"interfaces/Web.WithdrawalRequestResult.html#success\",\"classes\":\"\",\"parent\":\"Web.WithdrawalRequestResult\"},{\"kind\":1024,\"name\":\"txHash\",\"url\":\"interfaces/Web.WithdrawalRequestResult.html#txHash\",\"classes\":\"\",\"parent\":\"Web.WithdrawalRequestResult\"},{\"kind\":4194304,\"name\":\"RelayerOptions\",\"url\":\"types/Web.RelayerOptions.html\",\"classes\":\"\",\"parent\":\"Web\"},{\"kind\":256,\"name\":\"ObfuscationOptions\",\"url\":\"interfaces/Web.ObfuscationOptions.html\",\"classes\":\"\",\"parent\":\"Web\"},{\"kind\":1024,\"name\":\"port\",\"url\":\"interfaces/Web.ObfuscationOptions.html#port\",\"classes\":\"\",\"parent\":\"Web.ObfuscationOptions\"},{\"kind\":1024,\"name\":\"headers\",\"url\":\"interfaces/Web.ObfuscationOptions.html#headers\",\"classes\":\"\",\"parent\":\"Web.ObfuscationOptions\"},{\"kind\":1024,\"name\":\"rv\",\"url\":\"interfaces/Web.ObfuscationOptions.html#rv\",\"classes\":\"\",\"parent\":\"Web.ObfuscationOptions\"},{\"kind\":128,\"name\":\"TorProvider\",\"url\":\"classes/Web.TorProvider.html\",\"classes\":\"\",\"parent\":\"Web\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Web.TorProvider.html#constructor\",\"classes\":\"\",\"parent\":\"Web.TorProvider\"},{\"kind\":32,\"name\":\"TorHttpClient\",\"url\":\"variables/Web.TorHttpClient.html\",\"classes\":\"\",\"parent\":\"Web\"},{\"kind\":512,\"name\":\"__type\",\"url\":\"variables/Web.TorHttpClient.html#__type\",\"classes\":\"\",\"parent\":\"Web.TorHttpClient\"},{\"kind\":32,\"name\":\"RegularHttpClient\",\"url\":\"variables/Web.RegularHttpClient.html\",\"classes\":\"\",\"parent\":\"Web\"},{\"kind\":512,\"name\":\"__type\",\"url\":\"variables/Web.RegularHttpClient.html#__type\",\"classes\":\"\",\"parent\":\"Web.RegularHttpClient\"},{\"kind\":128,\"name\":\"Relayer\",\"url\":\"classes/Web.Relayer.html\",\"classes\":\"\",\"parent\":\"Web\"},{\"kind\":2048,\"name\":\"fromCache\",\"url\":\"classes/Web.Relayer.html#fromCache\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Web.Relayer.html#constructor\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"url\",\"url\":\"classes/Web.Relayer.html#url\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"httpClient\",\"url\":\"classes/Web.Relayer.html#httpClient\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_fetched\",\"url\":\"classes/Web.Relayer.html#_fetched\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_address\",\"url\":\"classes/Web.Relayer.html#_address\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_version\",\"url\":\"classes/Web.Relayer.html#_version\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_serviceFee\",\"url\":\"classes/Web.Relayer.html#_serviceFee\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_miningFee\",\"url\":\"classes/Web.Relayer.html#_miningFee\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_status\",\"url\":\"classes/Web.Relayer.html#_status\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_chainId\",\"url\":\"classes/Web.Relayer.html#_chainId\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_prices\",\"url\":\"classes/Web.Relayer.html#_prices\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":2048,\"name\":\"fetchProperties\",\"url\":\"classes/Web.Relayer.html#fetchProperties\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_propertiesFetched\",\"url\":\"classes/Web.Relayer.html#_propertiesFetched\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":262144,\"name\":\"address\",\"url\":\"classes/Web.Relayer.html#address\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":262144,\"name\":\"version\",\"url\":\"classes/Web.Relayer.html#version\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":262144,\"name\":\"serviceFeePercent\",\"url\":\"classes/Web.Relayer.html#serviceFeePercent\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":262144,\"name\":\"miningFeePercent\",\"url\":\"classes/Web.Relayer.html#miningFeePercent\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":262144,\"name\":\"status\",\"url\":\"classes/Web.Relayer.html#status\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":262144,\"name\":\"chainId\",\"url\":\"classes/Web.Relayer.html#chainId\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":262144,\"name\":\"prices\",\"url\":\"classes/Web.Relayer.html#prices\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":262144,\"name\":\"properties\",\"url\":\"classes/Web.Relayer.html#properties\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":2048,\"name\":\"getETHPurchasePrice\",\"url\":\"classes/Web.Relayer.html#getETHPurchasePrice\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":2048,\"name\":\"handleWithdrawal\",\"url\":\"classes/Web.Relayer.html#handleWithdrawal\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_handleHTTPError\",\"url\":\"classes/Web.Relayer.html#_handleHTTPError\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":2048,\"name\":\"remember\",\"url\":\"classes/Web.Relayer.html#remember\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":4,\"name\":\"Utils\",\"url\":\"modules/Utils.html\",\"classes\":\"\"},{\"kind\":4,\"name\":\"ErrorUtils\",\"url\":\"modules/Utils.ErrorUtils.html\",\"classes\":\"\",\"parent\":\"Utils\"},{\"kind\":64,\"name\":\"ensureError\",\"url\":\"functions/Utils.ErrorUtils.ensureError.html\",\"classes\":\"\",\"parent\":\"Utils.ErrorUtils\"},{\"kind\":64,\"name\":\"getError\",\"url\":\"functions/Utils.ErrorUtils.getError.html\",\"classes\":\"\",\"parent\":\"Utils.ErrorUtils\"},{\"kind\":4,\"name\":\"AsyncUtils\",\"url\":\"modules/Utils.AsyncUtils.html\",\"classes\":\"\",\"parent\":\"Utils\"},{\"kind\":64,\"name\":\"timeout\",\"url\":\"functions/Utils.AsyncUtils.timeout.html\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils\"},{\"kind\":4194304,\"name\":\"Callback\",\"url\":\"types/Utils.AsyncUtils.Callback.html\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/Utils.AsyncUtils.Callback.html#__type\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.Callback\"},{\"kind\":4194304,\"name\":\"ErrorHandler\",\"url\":\"types/Utils.AsyncUtils.ErrorHandler.html\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/Utils.AsyncUtils.ErrorHandler.html#__type\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.ErrorHandler\"},{\"kind\":128,\"name\":\"PromisePooler\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#constructor\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"concurrencyLimit\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#concurrencyLimit\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"_totalAdded\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#_totalAdded\",\"classes\":\"tsd-is-private\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"_results\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#_results\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"_callbacks\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#_callbacks\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"_errorHandlers\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#_errorHandlers\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"_promises\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#_promises\",\"classes\":\"tsd-is-private\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":262144,\"name\":\"pending\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#pending\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":262144,\"name\":\"totalAdded\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#totalAdded\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":2048,\"name\":\"poolMany\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#poolMany\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":2048,\"name\":\"pool\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#pool\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":2048,\"name\":\"all\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#all\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":2048,\"name\":\"race\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#race\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":2048,\"name\":\"reset\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#reset\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"_pool\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#_pool\",\"classes\":\"tsd-is-private\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"_getPromiseIndex\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#_getPromiseIndex\",\"classes\":\"tsd-is-private\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"_waitIfFull\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#_waitIfFull\",\"classes\":\"tsd-is-private\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":128,\"name\":\"SimpleMutex\",\"url\":\"classes/Utils.AsyncUtils.SimpleMutex.html\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Utils.AsyncUtils.SimpleMutex.html#constructor\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.SimpleMutex\"},{\"kind\":1024,\"name\":\"_mutexes\",\"url\":\"classes/Utils.AsyncUtils.SimpleMutex.html#_mutexes\",\"classes\":\"tsd-is-private\",\"parent\":\"Utils.AsyncUtils.SimpleMutex\"},{\"kind\":2048,\"name\":\"acquire\",\"url\":\"classes/Utils.AsyncUtils.SimpleMutex.html#acquire\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.SimpleMutex\"},{\"kind\":4,\"name\":\"NumberUtils\",\"url\":\"modules/Utils.NumberUtils.html\",\"classes\":\"\",\"parent\":\"Utils\"},{\"kind\":64,\"name\":\"randomBigInteger\",\"url\":\"functions/Utils.NumberUtils.randomBigInteger.html\",\"classes\":\"\",\"parent\":\"Utils.NumberUtils\"},{\"kind\":64,\"name\":\"getRandomFromRange\",\"url\":\"functions/Utils.NumberUtils.getRandomFromRange.html\",\"classes\":\"\",\"parent\":\"Utils.NumberUtils\"},{\"kind\":4,\"name\":\"HexUtils\",\"url\":\"modules/Utils.HexUtils.html\",\"classes\":\"\",\"parent\":\"Utils\"},{\"kind\":64,\"name\":\"bufferToHex\",\"url\":\"functions/Utils.HexUtils.bufferToHex.html\",\"classes\":\"\",\"parent\":\"Utils.HexUtils\"},{\"kind\":64,\"name\":\"numberToHex\",\"url\":\"functions/Utils.HexUtils.numberToHex.html\",\"classes\":\"\",\"parent\":\"Utils.HexUtils\"},{\"kind\":64,\"name\":\"bigIntToHex\",\"url\":\"functions/Utils.HexUtils.bigIntToHex.html\",\"classes\":\"\",\"parent\":\"Utils.HexUtils\"},{\"kind\":64,\"name\":\"prepareAddress\",\"url\":\"functions/Utils.HexUtils.prepareAddress.html\",\"classes\":\"\",\"parent\":\"Utils.HexUtils\"},{\"kind\":4,\"name\":\"ObjectUtils\",\"url\":\"modules/Utils.ObjectUtils.html\",\"classes\":\"\",\"parent\":\"Utils\"},{\"kind\":64,\"name\":\"populate\",\"url\":\"functions/Utils.ObjectUtils.populate.html\",\"classes\":\"\",\"parent\":\"Utils.ObjectUtils\"},{\"kind\":64,\"name\":\"swap\",\"url\":\"functions/Utils.ObjectUtils.swap.html\",\"classes\":\"\",\"parent\":\"Utils.ObjectUtils\"},{\"kind\":64,\"name\":\"exists\",\"url\":\"functions/Utils.ObjectUtils.exists.html\",\"classes\":\"\",\"parent\":\"Utils.ObjectUtils\"},{\"kind\":4,\"name\":\"Options\",\"url\":\"modules/Options.html\",\"classes\":\"\"},{\"kind\":4,\"name\":\"Core\",\"url\":\"modules/Options.Core.html\",\"classes\":\"\",\"parent\":\"Options\"},{\"kind\":256,\"name\":\"Deposit\",\"url\":\"interfaces/Options.Core.Deposit.html\",\"classes\":\"\",\"parent\":\"Options.Core\"},{\"kind\":1024,\"name\":\"depositsPerInstance\",\"url\":\"interfaces/Options.Core.Deposit.html#depositsPerInstance\",\"classes\":\"\",\"parent\":\"Options.Core.Deposit\"},{\"kind\":1024,\"name\":\"doNotPopulate\",\"url\":\"interfaces/Options.Core.Deposit.html#doNotPopulate\",\"classes\":\"\",\"parent\":\"Options.Core.Deposit\"},{\"kind\":4194304,\"name\":\"Invoice\",\"url\":\"types/Options.Core.Invoice.html\",\"classes\":\"\",\"parent\":\"Options.Core\"},{\"kind\":256,\"name\":\"BuildDepositProof\",\"url\":\"interfaces/Options.Core.BuildDepositProof.html\",\"classes\":\"\",\"parent\":\"Options.Core\"},{\"kind\":1024,\"name\":\"gasPrice\",\"url\":\"interfaces/Options.Core.BuildDepositProof.html#gasPrice\",\"classes\":\"\",\"parent\":\"Options.Core.BuildDepositProof\"},{\"kind\":1024,\"name\":\"gasPriceCushion\",\"url\":\"interfaces/Options.Core.BuildDepositProof.html#gasPriceCushion\",\"classes\":\"\",\"parent\":\"Options.Core.BuildDepositProof\"},{\"kind\":1024,\"name\":\"tokenDecimals\",\"url\":\"interfaces/Options.Core.BuildDepositProof.html#tokenDecimals\",\"classes\":\"\",\"parent\":\"Options.Core.BuildDepositProof\"},{\"kind\":1024,\"name\":\"ethPurchaseAmounts\",\"url\":\"interfaces/Options.Core.BuildDepositProof.html#ethPurchaseAmounts\",\"classes\":\"\",\"parent\":\"Options.Core.BuildDepositProof\"},{\"kind\":1024,\"name\":\"checkNotesSpent\",\"url\":\"interfaces/Options.Core.BuildDepositProof.html#checkNotesSpent\",\"classes\":\"\",\"parent\":\"Options.Core.BuildDepositProof\"},{\"kind\":1024,\"name\":\"checkKnownRoot\",\"url\":\"interfaces/Options.Core.BuildDepositProof.html#checkKnownRoot\",\"classes\":\"\",\"parent\":\"Options.Core.BuildDepositProof\"},{\"kind\":1024,\"name\":\"merkleTreeHeight\",\"url\":\"interfaces/Options.Core.BuildDepositProof.html#merkleTreeHeight\",\"classes\":\"\",\"parent\":\"Options.Core.BuildDepositProof\"},{\"kind\":4194304,\"name\":\"Sync\",\"url\":\"types/Options.Sync.html\",\"classes\":\"\",\"parent\":\"Options\"},{\"kind\":4194304,\"name\":\"Cache\",\"url\":\"types/Options.Cache.html\",\"classes\":\"\",\"parent\":\"Options\"},{\"kind\":4,\"name\":\"Transactions\",\"url\":\"modules/Transactions.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"Deposit\",\"url\":\"interfaces/Transactions.Deposit.html\",\"classes\":\"\",\"parent\":\"Transactions\"},{\"kind\":1024,\"name\":\"request\",\"url\":\"interfaces/Transactions.Deposit.html#request\",\"classes\":\"\",\"parent\":\"Transactions.Deposit\"},{\"kind\":1024,\"name\":\"invoice\",\"url\":\"interfaces/Transactions.Deposit.html#invoice\",\"classes\":\"\",\"parent\":\"Transactions.Deposit\"},{\"kind\":1024,\"name\":\"note\",\"url\":\"interfaces/Transactions.Deposit.html#note\",\"classes\":\"\",\"parent\":\"Transactions.Deposit\"},{\"kind\":4194304,\"name\":\"Invoice\",\"url\":\"types/Transactions.Invoice.html\",\"classes\":\"\",\"parent\":\"Transactions\"},{\"kind\":128,\"name\":\"DepositCache\",\"url\":\"classes/DepositCache.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/DepositCache.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"buildDoc\",\"url\":\"classes/DepositCache.html#buildDoc\",\"classes\":\"\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"getErrorHandlers\",\"url\":\"classes/DepositCache.html#getErrorHandlers\",\"classes\":\"\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"getCallbacks\",\"url\":\"classes/DepositCache.html#getCallbacks\",\"classes\":\"\",\"parent\":\"DepositCache\"},{\"kind\":1024,\"name\":\"pooler\",\"url\":\"classes/DepositCache.html#pooler\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"initializePooler\",\"url\":\"classes/DepositCache.html#initializePooler\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"close\",\"url\":\"classes/DepositCache.html#close\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"clear\",\"url\":\"classes/DepositCache.html#clear\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/DepositCache.html#name\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":1024,\"name\":\"isOpen\",\"url\":\"classes/DepositCache.html#isOpen\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":1024,\"name\":\"db\",\"url\":\"classes/DepositCache.html#db\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"zip\",\"url\":\"classes/DepositCache.html#zip\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"jsonify\",\"url\":\"classes/DepositCache.html#jsonify\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/DepositCache.html#get\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"getRows\",\"url\":\"classes/DepositCache.html#getRows\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":128,\"name\":\"WithdrawalCache\",\"url\":\"classes/WithdrawalCache.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WithdrawalCache.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"buildDoc\",\"url\":\"classes/WithdrawalCache.html#buildDoc\",\"classes\":\"\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"getErrorHandlers\",\"url\":\"classes/WithdrawalCache.html#getErrorHandlers\",\"classes\":\"\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"getCallbacks\",\"url\":\"classes/WithdrawalCache.html#getCallbacks\",\"classes\":\"\",\"parent\":\"WithdrawalCache\"},{\"kind\":1024,\"name\":\"pooler\",\"url\":\"classes/WithdrawalCache.html#pooler\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"initializePooler\",\"url\":\"classes/WithdrawalCache.html#initializePooler\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"close\",\"url\":\"classes/WithdrawalCache.html#close\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"clear\",\"url\":\"classes/WithdrawalCache.html#clear\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/WithdrawalCache.html#name\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":1024,\"name\":\"isOpen\",\"url\":\"classes/WithdrawalCache.html#isOpen\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":1024,\"name\":\"db\",\"url\":\"classes/WithdrawalCache.html#db\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"zip\",\"url\":\"classes/WithdrawalCache.html#zip\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"jsonify\",\"url\":\"classes/WithdrawalCache.html#jsonify\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/WithdrawalCache.html#get\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"getRows\",\"url\":\"classes/WithdrawalCache.html#getRows\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":128,\"name\":\"Core\",\"url\":\"classes/Core.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Core.html#constructor\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_mutex\",\"url\":\"classes/Core.html#_mutex\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_chain\",\"url\":\"classes/Core.html#_chain\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_notes\",\"url\":\"classes/Core.html#_notes\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_invoices\",\"url\":\"classes/Core.html#_invoices\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":262144,\"name\":\"chain\",\"url\":\"classes/Core.html#chain\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_checkProvider\",\"url\":\"classes/Core.html#_checkProvider\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"connect\",\"url\":\"classes/Core.html#connect\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"getInstances\",\"url\":\"classes/Core.html#getInstances\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"getInstance\",\"url\":\"classes/Core.html#getInstance\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"getProxy\",\"url\":\"classes/Core.html#getProxy\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"createDepositProof\",\"url\":\"classes/Core.html#createDepositProof\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"createDepositProofs\",\"url\":\"classes/Core.html#createDepositProofs\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_calcWithdrawalFee\",\"url\":\"classes/Core.html#_calcWithdrawalFee\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_findLeavesAndIndices\",\"url\":\"classes/Core.html#_findLeavesAndIndices\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"loadNotes\",\"url\":\"classes/Core.html#loadNotes\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"parseNotes\",\"url\":\"classes/Core.html#parseNotes\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"parseNote\",\"url\":\"classes/Core.html#parseNote\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"clearListener\",\"url\":\"classes/Core.html#clearListener\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"clearListeners\",\"url\":\"classes/Core.html#clearListeners\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"listenForDeposits\",\"url\":\"classes/Core.html#listenForDeposits\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"listenForWithdrawals\",\"url\":\"classes/Core.html#listenForWithdrawals\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"listenForInstanceEvents\",\"url\":\"classes/Core.html#listenForInstanceEvents\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_instanceEventToFilter\",\"url\":\"classes/Core.html#_instanceEventToFilter\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_resolveInstanceEvent\",\"url\":\"classes/Core.html#_resolveInstanceEvent\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_resolveInstance\",\"url\":\"classes/Core.html#_resolveInstance\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"createDepositTransaction\",\"url\":\"classes/Core.html#createDepositTransaction\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"createDepositTransactions\",\"url\":\"classes/Core.html#createDepositTransactions\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"syncDeposits\",\"url\":\"classes/Core.html#syncDeposits\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"syncWithdrawals\",\"url\":\"classes/Core.html#syncWithdrawals\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"_populateSyncOptions\",\"url\":\"classes/Core.html#_populateSyncOptions\",\"classes\":\"tsd-is-protected\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"backupNote\",\"url\":\"classes/Core.html#backupNote\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"backupInvoice\",\"url\":\"classes/Core.html#backupInvoice\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"backupNotes\",\"url\":\"classes/Core.html#backupNotes\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"backupInvoices\",\"url\":\"classes/Core.html#backupInvoices\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_backupDepositData\",\"url\":\"classes/Core.html#_backupDepositData\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"exportCacheZip\",\"url\":\"classes/Core.html#exportCacheZip\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"exportCacheJson\",\"url\":\"classes/Core.html#exportCacheJson\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"loadNotesCache\",\"url\":\"classes/Core.html#loadNotesCache\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"loadInvoicesCache\",\"url\":\"classes/Core.html#loadInvoicesCache\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"loadDepositCache\",\"url\":\"classes/Core.html#loadDepositCache\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"loadWithdrawalCache\",\"url\":\"classes/Core.html#loadWithdrawalCache\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"loadCache\",\"url\":\"classes/Core.html#loadCache\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"loadInstance\",\"url\":\"classes/Core.html#loadInstance\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"caches\",\"url\":\"classes/Core.html#caches\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"sync\",\"url\":\"classes/Core.html#sync\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"listenForEvents\",\"url\":\"classes/Core.html#listenForEvents\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"clearListenerByIndex\",\"url\":\"classes/Core.html#clearListenerByIndex\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Core\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,57.889]],[\"comment/0\",[]],[\"name/1\",[1,57.889]],[\"comment/1\",[]],[\"name/2\",[2,57.889]],[\"comment/2\",[]],[\"name/3\",[3,52.781]],[\"comment/3\",[]],[\"name/4\",[4,49.416]],[\"comment/4\",[]],[\"name/5\",[5,49.416]],[\"comment/5\",[]],[\"name/6\",[6,49.416]],[\"comment/6\",[]],[\"name/7\",[7,57.889]],[\"comment/7\",[]],[\"name/8\",[8,52.781]],[\"comment/8\",[]],[\"name/9\",[9,57.889]],[\"comment/9\",[]],[\"name/10\",[10,52.781]],[\"comment/10\",[]],[\"name/11\",[11,52.781]],[\"comment/11\",[]],[\"name/12\",[12,52.781]],[\"comment/12\",[]],[\"name/13\",[13,52.781]],[\"comment/13\",[]],[\"name/14\",[14,57.889]],[\"comment/14\",[]],[\"name/15\",[15,40.543]],[\"comment/15\",[]],[\"name/16\",[16,57.889]],[\"comment/16\",[]],[\"name/17\",[17,57.889]],[\"comment/17\",[]],[\"name/18\",[18,57.889]],[\"comment/18\",[]],[\"name/19\",[19,57.889]],[\"comment/19\",[]],[\"name/20\",[20,57.889]],[\"comment/20\",[]],[\"name/21\",[21,57.889]],[\"comment/21\",[]],[\"name/22\",[12,52.781]],[\"comment/22\",[]],[\"name/23\",[22,52.781]],[\"comment/23\",[]],[\"name/24\",[23,57.889]],[\"comment/24\",[]],[\"name/25\",[3,52.781]],[\"comment/25\",[]],[\"name/26\",[24,57.889]],[\"comment/26\",[]],[\"name/27\",[4,49.416]],[\"comment/27\",[]],[\"name/28\",[5,49.416]],[\"comment/28\",[]],[\"name/29\",[6,49.416]],[\"comment/29\",[]],[\"name/30\",[25,52.781]],[\"comment/30\",[]],[\"name/31\",[26,57.889]],[\"comment/31\",[]],[\"name/32\",[27,57.889]],[\"comment/32\",[]],[\"name/33\",[22,52.781]],[\"comment/33\",[]],[\"name/34\",[28,57.889]],[\"comment/34\",[]],[\"name/35\",[15,40.543]],[\"comment/35\",[]],[\"name/36\",[13,52.781]],[\"comment/36\",[]],[\"name/37\",[29,57.889]],[\"comment/37\",[]],[\"name/38\",[30,52.781]],[\"comment/38\",[]],[\"name/39\",[11,52.781]],[\"comment/39\",[]],[\"name/40\",[31,57.889]],[\"comment/40\",[]],[\"name/41\",[32,57.889]],[\"comment/41\",[]],[\"name/42\",[33,52.781]],[\"comment/42\",[]],[\"name/43\",[34,57.889]],[\"comment/43\",[]],[\"name/44\",[35,57.889]],[\"comment/44\",[]],[\"name/45\",[15,40.543]],[\"comment/45\",[]],[\"name/46\",[5,49.416]],[\"comment/46\",[]],[\"name/47\",[6,49.416]],[\"comment/47\",[]],[\"name/48\",[36,57.889]],[\"comment/48\",[]],[\"name/49\",[37,57.889]],[\"comment/49\",[]],[\"name/50\",[38,57.889]],[\"comment/50\",[]],[\"name/51\",[39,57.889]],[\"comment/51\",[]],[\"name/52\",[40,57.889]],[\"comment/52\",[]],[\"name/53\",[41,57.889]],[\"comment/53\",[]],[\"name/54\",[42,57.889]],[\"comment/54\",[]],[\"name/55\",[43,57.889]],[\"comment/55\",[]],[\"name/56\",[44,57.889]],[\"comment/56\",[]],[\"name/57\",[45,57.889]],[\"comment/57\",[]],[\"name/58\",[46,57.889]],[\"comment/58\",[]],[\"name/59\",[47,57.889]],[\"comment/59\",[]],[\"name/60\",[48,52.781]],[\"comment/60\",[]],[\"name/61\",[4,49.416]],[\"comment/61\",[]],[\"name/62\",[25,52.781]],[\"comment/62\",[]],[\"name/63\",[49,57.889]],[\"comment/63\",[]],[\"name/64\",[50,57.889]],[\"comment/64\",[]],[\"name/65\",[51,57.889]],[\"comment/65\",[]],[\"name/66\",[52,41.795]],[\"comment/66\",[]],[\"name/67\",[53,49.416]],[\"comment/67\",[]],[\"name/68\",[54,49.416]],[\"comment/68\",[]],[\"name/69\",[55,44.897]],[\"comment/69\",[]],[\"name/70\",[56,52.781]],[\"comment/70\",[]],[\"name/71\",[57,43.226]],[\"comment/71\",[]],[\"name/72\",[58,57.889]],[\"comment/72\",[]],[\"name/73\",[59,57.889]],[\"comment/73\",[]],[\"name/74\",[52,41.795]],[\"comment/74\",[]],[\"name/75\",[53,49.416]],[\"comment/75\",[]],[\"name/76\",[54,49.416]],[\"comment/76\",[]],[\"name/77\",[55,44.897]],[\"comment/77\",[]],[\"name/78\",[56,52.781]],[\"comment/78\",[]],[\"name/79\",[57,43.226]],[\"comment/79\",[]],[\"name/80\",[60,57.889]],[\"comment/80\",[]],[\"name/81\",[52,41.795]],[\"comment/81\",[]],[\"name/82\",[54,49.416]],[\"comment/82\",[]],[\"name/83\",[57,43.226]],[\"comment/83\",[]],[\"name/84\",[61,57.889]],[\"comment/84\",[]],[\"name/85\",[62,57.889]],[\"comment/85\",[]],[\"name/86\",[52,41.795]],[\"comment/86\",[]],[\"name/87\",[63,49.416]],[\"comment/87\",[]],[\"name/88\",[55,44.897]],[\"comment/88\",[]],[\"name/89\",[64,57.889]],[\"comment/89\",[]],[\"name/90\",[57,43.226]],[\"comment/90\",[]],[\"name/91\",[65,49.416]],[\"comment/91\",[]],[\"name/92\",[66,49.416]],[\"comment/92\",[]],[\"name/93\",[67,49.416]],[\"comment/93\",[]],[\"name/94\",[68,49.416]],[\"comment/94\",[]],[\"name/95\",[69,49.416]],[\"comment/95\",[]],[\"name/96\",[70,49.416]],[\"comment/96\",[]],[\"name/97\",[71,46.903]],[\"comment/97\",[]],[\"name/98\",[72,46.903]],[\"comment/98\",[]],[\"name/99\",[73,57.889]],[\"comment/99\",[]],[\"name/100\",[74,57.889]],[\"comment/100\",[]],[\"name/101\",[75,57.889]],[\"comment/101\",[]],[\"name/102\",[76,57.889]],[\"comment/102\",[]],[\"name/103\",[77,57.889]],[\"comment/103\",[]],[\"name/104\",[78,57.889]],[\"comment/104\",[]],[\"name/105\",[79,57.889]],[\"comment/105\",[]],[\"name/106\",[80,57.889]],[\"comment/106\",[]],[\"name/107\",[81,57.889]],[\"comment/107\",[]],[\"name/108\",[82,57.889]],[\"comment/108\",[]],[\"name/109\",[15,40.543]],[\"comment/109\",[]],[\"name/110\",[83,57.889]],[\"comment/110\",[]],[\"name/111\",[84,57.889]],[\"comment/111\",[]],[\"name/112\",[85,57.889]],[\"comment/112\",[]],[\"name/113\",[86,57.889]],[\"comment/113\",[]],[\"name/114\",[87,57.889]],[\"comment/114\",[]],[\"name/115\",[88,57.889]],[\"comment/115\",[]],[\"name/116\",[89,57.889]],[\"comment/116\",[]],[\"name/117\",[90,57.889]],[\"comment/117\",[]],[\"name/118\",[91,57.889]],[\"comment/118\",[]],[\"name/119\",[92,57.889]],[\"comment/119\",[]],[\"name/120\",[93,57.889]],[\"comment/120\",[]],[\"name/121\",[94,57.889]],[\"comment/121\",[]],[\"name/122\",[95,57.889]],[\"comment/122\",[]],[\"name/123\",[96,57.889]],[\"comment/123\",[]],[\"name/124\",[97,52.781]],[\"comment/124\",[]],[\"name/125\",[98,57.889]],[\"comment/125\",[]],[\"name/126\",[99,57.889]],[\"comment/126\",[]],[\"name/127\",[100,57.889]],[\"comment/127\",[]],[\"name/128\",[101,57.889]],[\"comment/128\",[]],[\"name/129\",[102,57.889]],[\"comment/129\",[]],[\"name/130\",[103,57.889]],[\"comment/130\",[]],[\"name/131\",[104,57.889]],[\"comment/131\",[]],[\"name/132\",[105,57.889]],[\"comment/132\",[]],[\"name/133\",[106,57.889]],[\"comment/133\",[]],[\"name/134\",[107,57.889]],[\"comment/134\",[]],[\"name/135\",[108,57.889]],[\"comment/135\",[]],[\"name/136\",[109,57.889]],[\"comment/136\",[]],[\"name/137\",[110,57.889]],[\"comment/137\",[]],[\"name/138\",[111,57.889]],[\"comment/138\",[]],[\"name/139\",[112,57.889]],[\"comment/139\",[]],[\"name/140\",[113,57.889]],[\"comment/140\",[]],[\"name/141\",[114,57.889]],[\"comment/141\",[]],[\"name/142\",[115,57.889]],[\"comment/142\",[]],[\"name/143\",[116,57.889]],[\"comment/143\",[]],[\"name/144\",[117,57.889]],[\"comment/144\",[]],[\"name/145\",[118,57.889]],[\"comment/145\",[]],[\"name/146\",[119,57.889]],[\"comment/146\",[]],[\"name/147\",[120,57.889]],[\"comment/147\",[]],[\"name/148\",[121,57.889]],[\"comment/148\",[]],[\"name/149\",[122,57.889]],[\"comment/149\",[]],[\"name/150\",[123,57.889]],[\"comment/150\",[]],[\"name/151\",[124,57.889]],[\"comment/151\",[]],[\"name/152\",[125,57.889]],[\"comment/152\",[]],[\"name/153\",[126,57.889]],[\"comment/153\",[]],[\"name/154\",[127,57.889]],[\"comment/154\",[]],[\"name/155\",[128,57.889]],[\"comment/155\",[]],[\"name/156\",[129,52.781]],[\"comment/156\",[]],[\"name/157\",[130,57.889]],[\"comment/157\",[]],[\"name/158\",[131,57.889]],[\"comment/158\",[]],[\"name/159\",[132,57.889]],[\"comment/159\",[]],[\"name/160\",[133,57.889]],[\"comment/160\",[]],[\"name/161\",[134,57.889]],[\"comment/161\",[]],[\"name/162\",[135,57.889]],[\"comment/162\",[]],[\"name/163\",[136,57.889]],[\"comment/163\",[]],[\"name/164\",[137,57.889]],[\"comment/164\",[]],[\"name/165\",[138,57.889]],[\"comment/165\",[]],[\"name/166\",[139,52.781]],[\"comment/166\",[]],[\"name/167\",[140,33.322]],[\"comment/167\",[]],[\"name/168\",[141,43.226]],[\"comment/168\",[]],[\"name/169\",[142,43.226]],[\"comment/169\",[]],[\"name/170\",[143,49.416]],[\"comment/170\",[]],[\"name/171\",[140,33.322]],[\"comment/171\",[]],[\"name/172\",[144,52.781]],[\"comment/172\",[]],[\"name/173\",[30,52.781]],[\"comment/173\",[]],[\"name/174\",[8,52.781]],[\"comment/174\",[]],[\"name/175\",[145,52.781]],[\"comment/175\",[]],[\"name/176\",[146,57.889]],[\"comment/176\",[]],[\"name/177\",[141,43.226]],[\"comment/177\",[]],[\"name/178\",[142,43.226]],[\"comment/178\",[]],[\"name/179\",[147,57.889]],[\"comment/179\",[]],[\"name/180\",[140,33.322]],[\"comment/180\",[]],[\"name/181\",[144,52.781]],[\"comment/181\",[]],[\"name/182\",[148,57.889]],[\"comment/182\",[]],[\"name/183\",[10,52.781]],[\"comment/183\",[]],[\"name/184\",[145,52.781]],[\"comment/184\",[]],[\"name/185\",[33,52.781]],[\"comment/185\",[]],[\"name/186\",[141,43.226]],[\"comment/186\",[]],[\"name/187\",[142,43.226]],[\"comment/187\",[]],[\"name/188\",[149,49.416]],[\"comment/188\",[]],[\"name/189\",[140,33.322]],[\"comment/189\",[]],[\"name/190\",[52,41.795]],[\"comment/190\",[]],[\"name/191\",[63,49.416]],[\"comment/191\",[]],[\"name/192\",[55,44.897]],[\"comment/192\",[]],[\"name/193\",[149,49.416]],[\"comment/193\",[]],[\"name/194\",[141,43.226]],[\"comment/194\",[]],[\"name/195\",[142,43.226]],[\"comment/195\",[]],[\"name/196\",[150,44.897]],[\"comment/196\",[]],[\"name/197\",[140,33.322]],[\"comment/197\",[]],[\"name/198\",[52,41.795]],[\"comment/198\",[]],[\"name/199\",[63,49.416]],[\"comment/199\",[]],[\"name/200\",[55,44.897]],[\"comment/200\",[]],[\"name/201\",[150,44.897]],[\"comment/201\",[]],[\"name/202\",[141,43.226]],[\"comment/202\",[]],[\"name/203\",[142,43.226]],[\"comment/203\",[]],[\"name/204\",[151,49.416]],[\"comment/204\",[]],[\"name/205\",[140,33.322]],[\"comment/205\",[]],[\"name/206\",[57,43.226]],[\"comment/206\",[]],[\"name/207\",[65,49.416]],[\"comment/207\",[]],[\"name/208\",[66,49.416]],[\"comment/208\",[]],[\"name/209\",[67,49.416]],[\"comment/209\",[]],[\"name/210\",[68,49.416]],[\"comment/210\",[]],[\"name/211\",[69,49.416]],[\"comment/211\",[]],[\"name/212\",[70,49.416]],[\"comment/212\",[]],[\"name/213\",[141,43.226]],[\"comment/213\",[]],[\"name/214\",[142,43.226]],[\"comment/214\",[]],[\"name/215\",[72,46.903]],[\"comment/215\",[]],[\"name/216\",[139,52.781]],[\"comment/216\",[]],[\"name/217\",[140,33.322]],[\"comment/217\",[]],[\"name/218\",[152,57.889]],[\"comment/218\",[]],[\"name/219\",[153,57.889]],[\"comment/219\",[]],[\"name/220\",[154,46.903]],[\"comment/220\",[]],[\"name/221\",[155,46.903]],[\"comment/221\",[]],[\"name/222\",[156,46.903]],[\"comment/222\",[]],[\"name/223\",[157,57.889]],[\"comment/223\",[]],[\"name/224\",[158,46.903]],[\"comment/224\",[]],[\"name/225\",[159,46.903]],[\"comment/225\",[]],[\"name/226\",[160,46.903]],[\"comment/226\",[]],[\"name/227\",[161,46.903]],[\"comment/227\",[]],[\"name/228\",[162,46.903]],[\"comment/228\",[]],[\"name/229\",[163,46.903]],[\"comment/229\",[]],[\"name/230\",[164,57.889]],[\"comment/230\",[]],[\"name/231\",[140,33.322]],[\"comment/231\",[]],[\"name/232\",[165,49.416]],[\"comment/232\",[]],[\"name/233\",[166,49.416]],[\"comment/233\",[]],[\"name/234\",[167,49.416]],[\"comment/234\",[]],[\"name/235\",[168,49.416]],[\"comment/235\",[]],[\"name/236\",[169,49.416]],[\"comment/236\",[]],[\"name/237\",[162,46.903]],[\"comment/237\",[]],[\"name/238\",[163,46.903]],[\"comment/238\",[]],[\"name/239\",[154,46.903]],[\"comment/239\",[]],[\"name/240\",[155,46.903]],[\"comment/240\",[]],[\"name/241\",[156,46.903]],[\"comment/241\",[]],[\"name/242\",[158,46.903]],[\"comment/242\",[]],[\"name/243\",[159,46.903]],[\"comment/243\",[]],[\"name/244\",[160,46.903]],[\"comment/244\",[]],[\"name/245\",[161,46.903]],[\"comment/245\",[]],[\"name/246\",[52,41.795]],[\"comment/246\",[]],[\"name/247\",[170,57.889]],[\"comment/247\",[]],[\"name/248\",[171,57.889]],[\"comment/248\",[]],[\"name/249\",[71,46.903]],[\"comment/249\",[]],[\"name/250\",[172,46.903]],[\"comment/250\",[]],[\"name/251\",[173,57.889]],[\"comment/251\",[]],[\"name/252\",[174,57.889]],[\"comment/252\",[]],[\"name/253\",[175,57.889]],[\"comment/253\",[]],[\"name/254\",[176,57.889]],[\"comment/254\",[]],[\"name/255\",[177,52.781]],[\"comment/255\",[]],[\"name/256\",[178,57.889]],[\"comment/256\",[]],[\"name/257\",[179,49.416]],[\"comment/257\",[]],[\"name/258\",[72,46.903]],[\"comment/258\",[]],[\"name/259\",[180,52.781]],[\"comment/259\",[]],[\"name/260\",[140,33.322]],[\"comment/260\",[]],[\"name/261\",[181,57.889]],[\"comment/261\",[]],[\"name/262\",[182,57.889]],[\"comment/262\",[]],[\"name/263\",[183,57.889]],[\"comment/263\",[]],[\"name/264\",[184,52.781]],[\"comment/264\",[]],[\"name/265\",[185,57.889]],[\"comment/265\",[]],[\"name/266\",[186,52.781]],[\"comment/266\",[]],[\"name/267\",[187,57.889]],[\"comment/267\",[]],[\"name/268\",[188,57.889]],[\"comment/268\",[]],[\"name/269\",[189,57.889]],[\"comment/269\",[]],[\"name/270\",[190,52.781]],[\"comment/270\",[]],[\"name/271\",[191,57.889]],[\"comment/271\",[]],[\"name/272\",[192,57.889]],[\"comment/272\",[]],[\"name/273\",[53,49.416]],[\"comment/273\",[]],[\"name/274\",[193,57.889]],[\"comment/274\",[]],[\"name/275\",[194,57.889]],[\"comment/275\",[]],[\"name/276\",[195,57.889]],[\"comment/276\",[]],[\"name/277\",[196,57.889]],[\"comment/277\",[]],[\"name/278\",[129,52.781]],[\"comment/278\",[]],[\"name/279\",[197,57.889]],[\"comment/279\",[]],[\"name/280\",[198,57.889]],[\"comment/280\",[]],[\"name/281\",[199,57.889]],[\"comment/281\",[]],[\"name/282\",[200,57.889]],[\"comment/282\",[]],[\"name/283\",[201,52.781]],[\"comment/283\",[]],[\"name/284\",[202,57.889]],[\"comment/284\",[]],[\"name/285\",[203,52.781]],[\"comment/285\",[]],[\"name/286\",[204,57.889]],[\"comment/286\",[]],[\"name/287\",[205,57.889]],[\"comment/287\",[]],[\"name/288\",[206,57.889]],[\"comment/288\",[]],[\"name/289\",[140,33.322]],[\"comment/289\",[]],[\"name/290\",[207,52.781]],[\"comment/290\",[]],[\"name/291\",[172,46.903]],[\"comment/291\",[]],[\"name/292\",[208,52.781]],[\"comment/292\",[]],[\"name/293\",[179,49.416]],[\"comment/293\",[]],[\"name/294\",[209,52.781]],[\"comment/294\",[]],[\"name/295\",[210,52.781]],[\"comment/295\",[]],[\"name/296\",[211,57.889]],[\"comment/296\",[]],[\"name/297\",[71,46.903]],[\"comment/297\",[]],[\"name/298\",[151,49.416]],[\"comment/298\",[]],[\"name/299\",[212,52.781]],[\"comment/299\",[]],[\"name/300\",[213,52.781]],[\"comment/300\",[]],[\"name/301\",[214,57.889]],[\"comment/301\",[]],[\"name/302\",[215,57.889]],[\"comment/302\",[]],[\"name/303\",[216,57.889]],[\"comment/303\",[]],[\"name/304\",[217,57.889]],[\"comment/304\",[]],[\"name/305\",[218,57.889]],[\"comment/305\",[]],[\"name/306\",[219,57.889]],[\"comment/306\",[]],[\"name/307\",[220,57.889]],[\"comment/307\",[]],[\"name/308\",[221,57.889]],[\"comment/308\",[]],[\"name/309\",[222,57.889]],[\"comment/309\",[]],[\"name/310\",[140,33.322]],[\"comment/310\",[]],[\"name/311\",[223,57.889]],[\"comment/311\",[]],[\"name/312\",[15,40.543]],[\"comment/312\",[]],[\"name/313\",[224,57.889]],[\"comment/313\",[]],[\"name/314\",[15,40.543]],[\"comment/314\",[]],[\"name/315\",[151,49.416]],[\"comment/315\",[]],[\"name/316\",[225,57.889]],[\"comment/316\",[]],[\"name/317\",[140,33.322]],[\"comment/317\",[]],[\"name/318\",[212,52.781]],[\"comment/318\",[]],[\"name/319\",[213,52.781]],[\"comment/319\",[]],[\"name/320\",[186,52.781]],[\"comment/320\",[]],[\"name/321\",[226,57.889]],[\"comment/321\",[]],[\"name/322\",[227,57.889]],[\"comment/322\",[]],[\"name/323\",[228,57.889]],[\"comment/323\",[]],[\"name/324\",[229,57.889]],[\"comment/324\",[]],[\"name/325\",[230,57.889]],[\"comment/325\",[]],[\"name/326\",[184,52.781]],[\"comment/326\",[]],[\"name/327\",[231,57.889]],[\"comment/327\",[]],[\"name/328\",[232,57.889]],[\"comment/328\",[]],[\"name/329\",[190,52.781]],[\"comment/329\",[]],[\"name/330\",[57,43.226]],[\"comment/330\",[]],[\"name/331\",[65,49.416]],[\"comment/331\",[]],[\"name/332\",[66,49.416]],[\"comment/332\",[]],[\"name/333\",[67,49.416]],[\"comment/333\",[]],[\"name/334\",[68,49.416]],[\"comment/334\",[]],[\"name/335\",[69,49.416]],[\"comment/335\",[]],[\"name/336\",[70,49.416]],[\"comment/336\",[]],[\"name/337\",[233,57.889]],[\"comment/337\",[]],[\"name/338\",[234,57.889]],[\"comment/338\",[]],[\"name/339\",[235,57.889]],[\"comment/339\",[]],[\"name/340\",[236,57.889]],[\"comment/340\",[]],[\"name/341\",[237,57.889]],[\"comment/341\",[]],[\"name/342\",[238,57.889]],[\"comment/342\",[]],[\"name/343\",[239,57.889]],[\"comment/343\",[]],[\"name/344\",[240,57.889]],[\"comment/344\",[]],[\"name/345\",[97,52.781]],[\"comment/345\",[]],[\"name/346\",[241,57.889]],[\"comment/346\",[]],[\"name/347\",[242,57.889]],[\"comment/347\",[]],[\"name/348\",[243,57.889]],[\"comment/348\",[]],[\"name/349\",[15,40.543]],[\"comment/349\",[]],[\"name/350\",[244,57.889]],[\"comment/350\",[]],[\"name/351\",[15,40.543]],[\"comment/351\",[]],[\"name/352\",[245,57.889]],[\"comment/352\",[]],[\"name/353\",[140,33.322]],[\"comment/353\",[]],[\"name/354\",[177,52.781]],[\"comment/354\",[]],[\"name/355\",[246,57.889]],[\"comment/355\",[]],[\"name/356\",[247,57.889]],[\"comment/356\",[]],[\"name/357\",[248,57.889]],[\"comment/357\",[]],[\"name/358\",[249,57.889]],[\"comment/358\",[]],[\"name/359\",[250,57.889]],[\"comment/359\",[]],[\"name/360\",[251,57.889]],[\"comment/360\",[]],[\"name/361\",[252,57.889]],[\"comment/361\",[]],[\"name/362\",[253,57.889]],[\"comment/362\",[]],[\"name/363\",[254,57.889]],[\"comment/363\",[]],[\"name/364\",[255,57.889]],[\"comment/364\",[]],[\"name/365\",[256,57.889]],[\"comment/365\",[]],[\"name/366\",[257,57.889]],[\"comment/366\",[]],[\"name/367\",[258,57.889]],[\"comment/367\",[]],[\"name/368\",[259,57.889]],[\"comment/368\",[]],[\"name/369\",[260,57.889]],[\"comment/369\",[]],[\"name/370\",[261,57.889]],[\"comment/370\",[]],[\"name/371\",[140,33.322]],[\"comment/371\",[]],[\"name/372\",[262,57.889]],[\"comment/372\",[]],[\"name/373\",[263,57.889]],[\"comment/373\",[]],[\"name/374\",[264,57.889]],[\"comment/374\",[]],[\"name/375\",[265,57.889]],[\"comment/375\",[]],[\"name/376\",[266,57.889]],[\"comment/376\",[]],[\"name/377\",[267,57.889]],[\"comment/377\",[]],[\"name/378\",[268,57.889]],[\"comment/378\",[]],[\"name/379\",[269,57.889]],[\"comment/379\",[]],[\"name/380\",[270,57.889]],[\"comment/380\",[]],[\"name/381\",[271,57.889]],[\"comment/381\",[]],[\"name/382\",[272,57.889]],[\"comment/382\",[]],[\"name/383\",[273,57.889]],[\"comment/383\",[]],[\"name/384\",[274,57.889]],[\"comment/384\",[]],[\"name/385\",[275,57.889]],[\"comment/385\",[]],[\"name/386\",[71,46.903]],[\"comment/386\",[]],[\"name/387\",[276,52.781]],[\"comment/387\",[]],[\"name/388\",[143,49.416]],[\"comment/388\",[]],[\"name/389\",[277,57.889]],[\"comment/389\",[]],[\"name/390\",[278,57.889]],[\"comment/390\",[]],[\"name/391\",[150,44.897]],[\"comment/391\",[]],[\"name/392\",[279,57.889]],[\"comment/392\",[]],[\"name/393\",[280,57.889]],[\"comment/393\",[]],[\"name/394\",[281,57.889]],[\"comment/394\",[]],[\"name/395\",[282,57.889]],[\"comment/395\",[]],[\"name/396\",[283,57.889]],[\"comment/396\",[]],[\"name/397\",[284,57.889]],[\"comment/397\",[]],[\"name/398\",[285,57.889]],[\"comment/398\",[]],[\"name/399\",[286,57.889]],[\"comment/399\",[]],[\"name/400\",[172,46.903]],[\"comment/400\",[]],[\"name/401\",[72,46.903]],[\"comment/401\",[]],[\"name/402\",[287,57.889]],[\"comment/402\",[]],[\"name/403\",[143,49.416]],[\"comment/403\",[]],[\"name/404\",[288,57.889]],[\"comment/404\",[]],[\"name/405\",[150,44.897]],[\"comment/405\",[]],[\"name/406\",[149,49.416]],[\"comment/406\",[]],[\"name/407\",[150,44.897]],[\"comment/407\",[]],[\"name/408\",[289,57.889]],[\"comment/408\",[]],[\"name/409\",[140,33.322]],[\"comment/409\",[]],[\"name/410\",[166,49.416]],[\"comment/410\",[]],[\"name/411\",[168,49.416]],[\"comment/411\",[]],[\"name/412\",[167,49.416]],[\"comment/412\",[]],[\"name/413\",[165,49.416]],[\"comment/413\",[]],[\"name/414\",[169,49.416]],[\"comment/414\",[]],[\"name/415\",[162,46.903]],[\"comment/415\",[]],[\"name/416\",[163,46.903]],[\"comment/416\",[]],[\"name/417\",[154,46.903]],[\"comment/417\",[]],[\"name/418\",[155,46.903]],[\"comment/418\",[]],[\"name/419\",[156,46.903]],[\"comment/419\",[]],[\"name/420\",[158,46.903]],[\"comment/420\",[]],[\"name/421\",[159,46.903]],[\"comment/421\",[]],[\"name/422\",[160,46.903]],[\"comment/422\",[]],[\"name/423\",[161,46.903]],[\"comment/423\",[]],[\"name/424\",[290,57.889]],[\"comment/424\",[]],[\"name/425\",[140,33.322]],[\"comment/425\",[]],[\"name/426\",[166,49.416]],[\"comment/426\",[]],[\"name/427\",[168,49.416]],[\"comment/427\",[]],[\"name/428\",[167,49.416]],[\"comment/428\",[]],[\"name/429\",[165,49.416]],[\"comment/429\",[]],[\"name/430\",[169,49.416]],[\"comment/430\",[]],[\"name/431\",[162,46.903]],[\"comment/431\",[]],[\"name/432\",[163,46.903]],[\"comment/432\",[]],[\"name/433\",[154,46.903]],[\"comment/433\",[]],[\"name/434\",[155,46.903]],[\"comment/434\",[]],[\"name/435\",[156,46.903]],[\"comment/435\",[]],[\"name/436\",[158,46.903]],[\"comment/436\",[]],[\"name/437\",[159,46.903]],[\"comment/437\",[]],[\"name/438\",[160,46.903]],[\"comment/438\",[]],[\"name/439\",[161,46.903]],[\"comment/439\",[]],[\"name/440\",[276,52.781]],[\"comment/440\",[]],[\"name/441\",[140,33.322]],[\"comment/441\",[]],[\"name/442\",[291,57.889]],[\"comment/442\",[]],[\"name/443\",[292,57.889]],[\"comment/443\",[]],[\"name/444\",[293,57.889]],[\"comment/444\",[]],[\"name/445\",[294,57.889]],[\"comment/445\",[]],[\"name/446\",[180,52.781]],[\"comment/446\",[]],[\"name/447\",[295,57.889]],[\"comment/447\",[]],[\"name/448\",[296,57.889]],[\"comment/448\",[]],[\"name/449\",[297,57.889]],[\"comment/449\",[]],[\"name/450\",[203,52.781]],[\"comment/450\",[]],[\"name/451\",[201,52.781]],[\"comment/451\",[]],[\"name/452\",[298,57.889]],[\"comment/452\",[]],[\"name/453\",[299,57.889]],[\"comment/453\",[]],[\"name/454\",[300,57.889]],[\"comment/454\",[]],[\"name/455\",[301,57.889]],[\"comment/455\",[]],[\"name/456\",[302,57.889]],[\"comment/456\",[]],[\"name/457\",[303,57.889]],[\"comment/457\",[]],[\"name/458\",[48,52.781]],[\"comment/458\",[]],[\"name/459\",[304,57.889]],[\"comment/459\",[]],[\"name/460\",[305,57.889]],[\"comment/460\",[]],[\"name/461\",[306,57.889]],[\"comment/461\",[]],[\"name/462\",[307,57.889]],[\"comment/462\",[]],[\"name/463\",[308,57.889]],[\"comment/463\",[]],[\"name/464\",[309,57.889]],[\"comment/464\",[]],[\"name/465\",[310,57.889]],[\"comment/465\",[]],[\"name/466\",[311,57.889]],[\"comment/466\",[]],[\"name/467\",[312,57.889]],[\"comment/467\",[]],[\"name/468\",[313,57.889]],[\"comment/468\",[]],[\"name/469\",[314,57.889]],[\"comment/469\",[]],[\"name/470\",[315,57.889]],[\"comment/470\",[]],[\"name/471\",[210,52.781]],[\"comment/471\",[]],[\"name/472\",[316,57.889]],[\"comment/472\",[]],[\"name/473\",[317,57.889]],[\"comment/473\",[]],[\"name/474\",[318,57.889]],[\"comment/474\",[]],[\"name/475\",[319,57.889]],[\"comment/475\",[]],[\"name/476\",[320,57.889]],[\"comment/476\",[]],[\"name/477\",[321,57.889]],[\"comment/477\",[]],[\"name/478\",[322,57.889]],[\"comment/478\",[]],[\"name/479\",[323,57.889]],[\"comment/479\",[]],[\"name/480\",[324,57.889]],[\"comment/480\",[]],[\"name/481\",[325,57.889]],[\"comment/481\",[]],[\"name/482\",[326,57.889]],[\"comment/482\",[]],[\"name/483\",[208,52.781]],[\"comment/483\",[]],[\"name/484\",[327,57.889]],[\"comment/484\",[]],[\"name/485\",[207,52.781]],[\"comment/485\",[]],[\"name/486\",[172,46.903]],[\"comment/486\",[]],[\"name/487\",[179,49.416]],[\"comment/487\",[]],[\"name/488\",[209,52.781]],[\"comment/488\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":15,\"name\":{\"15\":{},\"35\":{},\"45\":{},\"109\":{},\"312\":{},\"314\":{},\"349\":{},\"351\":{}},\"comment\":{}}],[\"_adapter\",{\"_index\":152,\"name\":{\"218\":{}},\"comment\":{}}],[\"_address\",{\"_index\":226,\"name\":{\"321\":{}},\"comment\":{}}],[\"_backupdepositdata\",{\"_index\":320,\"name\":{\"476\":{}},\"comment\":{}}],[\"_calcwithdrawalfee\",{\"_index\":300,\"name\":{\"454\":{}},\"comment\":{}}],[\"_callbacks\",{\"_index\":248,\"name\":{\"357\":{}},\"comment\":{}}],[\"_chain\",{\"_index\":292,\"name\":{\"443\":{}},\"comment\":{}}],[\"_chainid\",{\"_index\":184,\"name\":{\"264\":{},\"326\":{}},\"comment\":{}}],[\"_checkprovider\",{\"_index\":295,\"name\":{\"447\":{}},\"comment\":{}}],[\"_emptysigner\",{\"_index\":182,\"name\":{\"262\":{}},\"comment\":{}}],[\"_errorhandlers\",{\"_index\":249,\"name\":{\"358\":{}},\"comment\":{}}],[\"_fetched\",{\"_index\":186,\"name\":{\"266\":{},\"320\":{}},\"comment\":{}}],[\"_findleavesandindices\",{\"_index\":301,\"name\":{\"455\":{}},\"comment\":{}}],[\"_getpromiseindex\",{\"_index\":259,\"name\":{\"368\":{}},\"comment\":{}}],[\"_handlehttperror\",{\"_index\":236,\"name\":{\"340\":{}},\"comment\":{}}],[\"_id\",{\"_index\":141,\"name\":{\"168\":{},\"177\":{},\"186\":{},\"194\":{},\"202\":{},\"213\":{}},\"comment\":{}}],[\"_instanceeventtofilter\",{\"_index\":309,\"name\":{\"464\":{}},\"comment\":{}}],[\"_invoices\",{\"_index\":294,\"name\":{\"445\":{}},\"comment\":{}}],[\"_miningfee\",{\"_index\":229,\"name\":{\"324\":{}},\"comment\":{}}],[\"_mutex\",{\"_index\":291,\"name\":{\"442\":{}},\"comment\":{}}],[\"_mutexes\",{\"_index\":262,\"name\":{\"372\":{}},\"comment\":{}}],[\"_notes\",{\"_index\":293,\"name\":{\"444\":{}},\"comment\":{}}],[\"_path\",{\"_index\":153,\"name\":{\"219\":{}},\"comment\":{}}],[\"_pool\",{\"_index\":258,\"name\":{\"367\":{}},\"comment\":{}}],[\"_populatesyncoptions\",{\"_index\":210,\"name\":{\"295\":{},\"471\":{}},\"comment\":{}}],[\"_prices\",{\"_index\":231,\"name\":{\"327\":{}},\"comment\":{}}],[\"_promises\",{\"_index\":250,\"name\":{\"359\":{}},\"comment\":{}}],[\"_propertiesfetched\",{\"_index\":190,\"name\":{\"270\":{},\"329\":{}},\"comment\":{}}],[\"_resolveinstance\",{\"_index\":311,\"name\":{\"466\":{}},\"comment\":{}}],[\"_resolveinstanceevent\",{\"_index\":310,\"name\":{\"465\":{}},\"comment\":{}}],[\"_results\",{\"_index\":247,\"name\":{\"356\":{}},\"comment\":{}}],[\"_rev\",{\"_index\":142,\"name\":{\"169\":{},\"178\":{},\"187\":{},\"195\":{},\"203\":{},\"214\":{}},\"comment\":{}}],[\"_servicefee\",{\"_index\":228,\"name\":{\"323\":{}},\"comment\":{}}],[\"_signer\",{\"_index\":183,\"name\":{\"263\":{}},\"comment\":{}}],[\"_signerconnected\",{\"_index\":189,\"name\":{\"269\":{}},\"comment\":{}}],[\"_status\",{\"_index\":230,\"name\":{\"325\":{}},\"comment\":{}}],[\"_symbol\",{\"_index\":185,\"name\":{\"265\":{}},\"comment\":{}}],[\"_totaladded\",{\"_index\":246,\"name\":{\"355\":{}},\"comment\":{}}],[\"_unzip\",{\"_index\":157,\"name\":{\"223\":{}},\"comment\":{}}],[\"_version\",{\"_index\":227,\"name\":{\"322\":{}},\"comment\":{}}],[\"_waitiffull\",{\"_index\":260,\"name\":{\"369\":{}},\"comment\":{}}],[\"acquire\",{\"_index\":263,\"name\":{\"373\":{}},\"comment\":{}}],[\"adapter\",{\"_index\":73,\"name\":{\"99\":{}},\"comment\":{}}],[\"address\",{\"_index\":57,\"name\":{\"71\":{},\"79\":{},\"83\":{},\"90\":{},\"206\":{},\"330\":{}},\"comment\":{}}],[\"all\",{\"_index\":255,\"name\":{\"364\":{}},\"comment\":{}}],[\"anonymityminingenabled\",{\"_index\":59,\"name\":{\"73\":{}},\"comment\":{}}],[\"asyncutils\",{\"_index\":241,\"name\":{\"346\":{}},\"comment\":{}}],[\"backupinvoice\",{\"_index\":317,\"name\":{\"473\":{}},\"comment\":{}}],[\"backupinvoices\",{\"_index\":319,\"name\":{\"475\":{}},\"comment\":{}}],[\"backupnote\",{\"_index\":316,\"name\":{\"472\":{}},\"comment\":{}}],[\"backupnotes\",{\"_index\":318,\"name\":{\"474\":{}},\"comment\":{}}],[\"base\",{\"_index\":139,\"name\":{\"166\":{},\"216\":{}},\"comment\":{}}],[\"batchcall\",{\"_index\":199,\"name\":{\"281\":{}},\"comment\":{}}],[\"bigint\",{\"_index\":1,\"name\":{\"1\":{}},\"comment\":{}}],[\"biginttohex\",{\"_index\":270,\"name\":{\"380\":{}},\"comment\":{}}],[\"blockdelta\",{\"_index\":175,\"name\":{\"253\":{}},\"comment\":{}}],[\"blockdivisor\",{\"_index\":176,\"name\":{\"254\":{}},\"comment\":{}}],[\"blocknumber\",{\"_index\":144,\"name\":{\"172\":{},\"181\":{}},\"comment\":{}}],[\"buffertohex\",{\"_index\":268,\"name\":{\"378\":{}},\"comment\":{}}],[\"builddepositproof\",{\"_index\":279,\"name\":{\"392\":{}},\"comment\":{}}],[\"builddoc\",{\"_index\":166,\"name\":{\"233\":{},\"410\":{},\"426\":{}},\"comment\":{}}],[\"buildmerkletree\",{\"_index\":25,\"name\":{\"30\":{},\"62\":{}},\"comment\":{}}],[\"cache\",{\"_index\":72,\"name\":{\"98\":{},\"215\":{},\"258\":{},\"401\":{}},\"comment\":{}}],[\"cachedirexists\",{\"_index\":86,\"name\":{\"113\":{}},\"comment\":{}}],[\"caches\",{\"_index\":207,\"name\":{\"290\":{},\"485\":{}},\"comment\":{}}],[\"calcdepositproofs\",{\"_index\":49,\"name\":{\"63\":{}},\"comment\":{}}],[\"calcpedersenhash\",{\"_index\":46,\"name\":{\"58\":{}},\"comment\":{}}],[\"callback\",{\"_index\":243,\"name\":{\"348\":{}},\"comment\":{}}],[\"chain\",{\"_index\":180,\"name\":{\"259\":{},\"446\":{}},\"comment\":{}}],[\"chainid\",{\"_index\":69,\"name\":{\"95\":{},\"211\":{},\"335\":{}},\"comment\":{}}],[\"checkknownroot\",{\"_index\":285,\"name\":{\"398\":{}},\"comment\":{}}],[\"checknotesspent\",{\"_index\":284,\"name\":{\"397\":{}},\"comment\":{}}],[\"classicinstance\",{\"_index\":58,\"name\":{\"72\":{}},\"comment\":{}}],[\"clear\",{\"_index\":163,\"name\":{\"229\":{},\"238\":{},\"416\":{},\"432\":{}},\"comment\":{}}],[\"clearlistener\",{\"_index\":304,\"name\":{\"459\":{}},\"comment\":{}}],[\"clearlistenerbyindex\",{\"_index\":209,\"name\":{\"294\":{},\"488\":{}},\"comment\":{}}],[\"clearlisteners\",{\"_index\":305,\"name\":{\"460\":{}},\"comment\":{}}],[\"close\",{\"_index\":162,\"name\":{\"228\":{},\"237\":{},\"415\":{},\"431\":{}},\"comment\":{}}],[\"commitment\",{\"_index\":8,\"name\":{\"8\":{},\"174\":{}},\"comment\":{}}],[\"concurrencylimit\",{\"_index\":177,\"name\":{\"255\":{},\"354\":{}},\"comment\":{}}],[\"connect\",{\"_index\":296,\"name\":{\"448\":{}},\"comment\":{}}],[\"connectsigner\",{\"_index\":187,\"name\":{\"267\":{}},\"comment\":{}}],[\"constants\",{\"_index\":136,\"name\":{\"163\":{}},\"comment\":{}}],[\"constructor\",{\"_index\":140,\"name\":{\"167\":{},\"171\":{},\"180\":{},\"189\":{},\"197\":{},\"205\":{},\"217\":{},\"231\":{},\"260\":{},\"289\":{},\"310\":{},\"317\":{},\"353\":{},\"371\":{},\"409\":{},\"425\":{},\"441\":{}},\"comment\":{}}],[\"contracts\",{\"_index\":200,\"name\":{\"282\":{}},\"comment\":{}}],[\"core\",{\"_index\":276,\"name\":{\"387\":{},\"440\":{}},\"comment\":{}}],[\"createdeposit\",{\"_index\":4,\"name\":{\"4\":{},\"27\":{},\"61\":{}},\"comment\":{}}],[\"createdepositproof\",{\"_index\":298,\"name\":{\"452\":{}},\"comment\":{}}],[\"createdepositproofs\",{\"_index\":299,\"name\":{\"453\":{}},\"comment\":{}}],[\"createdeposittransaction\",{\"_index\":312,\"name\":{\"467\":{}},\"comment\":{}}],[\"createdeposittransactions\",{\"_index\":313,\"name\":{\"468\":{}},\"comment\":{}}],[\"createnote\",{\"_index\":47,\"name\":{\"59\":{}},\"comment\":{}}],[\"crypto\",{\"_index\":0,\"name\":{\"0\":{}},\"comment\":{}}],[\"data\",{\"_index\":50,\"name\":{\"64\":{}},\"comment\":{}}],[\"db\",{\"_index\":156,\"name\":{\"222\":{},\"241\":{},\"419\":{},\"435\":{}},\"comment\":{}}],[\"decimals\",{\"_index\":54,\"name\":{\"68\":{},\"76\":{},\"82\":{}},\"comment\":{}}],[\"denomination\",{\"_index\":55,\"name\":{\"69\":{},\"77\":{},\"88\":{},\"192\":{},\"200\":{}},\"comment\":{}}],[\"deployblock\",{\"_index\":56,\"name\":{\"70\":{},\"78\":{}},\"comment\":{}}],[\"deposit\",{\"_index\":143,\"name\":{\"170\":{},\"388\":{},\"403\":{}},\"comment\":{}}],[\"depositcache\",{\"_index\":289,\"name\":{\"408\":{}},\"comment\":{}}],[\"depositinfo\",{\"_index\":37,\"name\":{\"49\":{}},\"comment\":{}}],[\"depositproof\",{\"_index\":22,\"name\":{\"23\":{},\"33\":{}},\"comment\":{}}],[\"depositsperinstance\",{\"_index\":277,\"name\":{\"389\":{}},\"comment\":{}}],[\"dirpath\",{\"_index\":74,\"name\":{\"100\":{}},\"comment\":{}}],[\"docs\",{\"_index\":138,\"name\":{\"165\":{}},\"comment\":{}}],[\"donotpopulate\",{\"_index\":278,\"name\":{\"390\":{}},\"comment\":{}}],[\"elements\",{\"_index\":17,\"name\":{\"17\":{}},\"comment\":{}}],[\"ensureerror\",{\"_index\":240,\"name\":{\"344\":{}},\"comment\":{}}],[\"errorhandler\",{\"_index\":244,\"name\":{\"350\":{}},\"comment\":{}}],[\"errorutils\",{\"_index\":239,\"name\":{\"343\":{}},\"comment\":{}}],[\"ethpurchaseamounts\",{\"_index\":283,\"name\":{\"396\":{}},\"comment\":{}}],[\"exists\",{\"_index\":275,\"name\":{\"385\":{}},\"comment\":{}}],[\"exportcachejson\",{\"_index\":322,\"name\":{\"478\":{}},\"comment\":{}}],[\"exportcachezip\",{\"_index\":321,\"name\":{\"477\":{}},\"comment\":{}}],[\"fee\",{\"_index\":33,\"name\":{\"42\":{},\"185\":{}},\"comment\":{}}],[\"fetchchaindata\",{\"_index\":188,\"name\":{\"268\":{}},\"comment\":{}}],[\"fetchproperties\",{\"_index\":232,\"name\":{\"328\":{}},\"comment\":{}}],[\"files\",{\"_index\":76,\"name\":{\"102\":{}},\"comment\":{}}],[\"fromcache\",{\"_index\":225,\"name\":{\"316\":{}},\"comment\":{}}],[\"gasprice\",{\"_index\":280,\"name\":{\"393\":{}},\"comment\":{}}],[\"gaspricecushion\",{\"_index\":281,\"name\":{\"394\":{}},\"comment\":{}}],[\"get\",{\"_index\":160,\"name\":{\"226\":{},\"244\":{},\"422\":{},\"438\":{}},\"comment\":{}}],[\"getaccountbalance\",{\"_index\":194,\"name\":{\"275\":{}},\"comment\":{}}],[\"getcachepath\",{\"_index\":85,\"name\":{\"112\":{}},\"comment\":{}}],[\"getcallbacks\",{\"_index\":167,\"name\":{\"234\":{},\"412\":{},\"428\":{}},\"comment\":{}}],[\"getclassicinstancedata\",{\"_index\":101,\"name\":{\"128\":{}},\"comment\":{}}],[\"getclassicinstancedatasync\",{\"_index\":102,\"name\":{\"129\":{}},\"comment\":{}}],[\"getclassicsubgraphurl\",{\"_index\":134,\"name\":{\"161\":{}},\"comment\":{}}],[\"getclassicsubgraphurlsync\",{\"_index\":135,\"name\":{\"162\":{}},\"comment\":{}}],[\"getdefaulthash\",{\"_index\":40,\"name\":{\"52\":{}},\"comment\":{}}],[\"geterror\",{\"_index\":97,\"name\":{\"124\":{},\"345\":{}},\"comment\":{}}],[\"geterrorhandlers\",{\"_index\":168,\"name\":{\"235\":{},\"411\":{},\"427\":{}},\"comment\":{}}],[\"getethpurchaseprice\",{\"_index\":234,\"name\":{\"338\":{}},\"comment\":{}}],[\"getgasprice\",{\"_index\":195,\"name\":{\"276\":{}},\"comment\":{}}],[\"getgroth16\",{\"_index\":43,\"name\":{\"55\":{}},\"comment\":{}}],[\"getinstance\",{\"_index\":203,\"name\":{\"285\":{},\"450\":{}},\"comment\":{}}],[\"getinstanceaddress\",{\"_index\":111,\"name\":{\"138\":{}},\"comment\":{}}],[\"getinstanceaddresses\",{\"_index\":109,\"name\":{\"136\":{}},\"comment\":{}}],[\"getinstanceaddressessync\",{\"_index\":110,\"name\":{\"137\":{}},\"comment\":{}}],[\"getinstanceaddresssync\",{\"_index\":112,\"name\":{\"139\":{}},\"comment\":{}}],[\"getinstancedeployblocknum\",{\"_index\":119,\"name\":{\"146\":{}},\"comment\":{}}],[\"getinstancedeployblocknums\",{\"_index\":117,\"name\":{\"144\":{}},\"comment\":{}}],[\"getinstancedeployblocknumssync\",{\"_index\":118,\"name\":{\"145\":{}},\"comment\":{}}],[\"getinstancedeployblocknumsync\",{\"_index\":120,\"name\":{\"147\":{}},\"comment\":{}}],[\"getinstancelookupkeys\",{\"_index\":103,\"name\":{\"130\":{}},\"comment\":{}}],[\"getinstancelookupkeyssync\",{\"_index\":104,\"name\":{\"131\":{}},\"comment\":{}}],[\"getinstances\",{\"_index\":297,\"name\":{\"449\":{}},\"comment\":{}}],[\"getmodulespath\",{\"_index\":83,\"name\":{\"110\":{}},\"comment\":{}}],[\"getmulticall3address\",{\"_index\":123,\"name\":{\"150\":{}},\"comment\":{}}],[\"getmulticall3addresssync\",{\"_index\":126,\"name\":{\"153\":{}},\"comment\":{}}],[\"getmulticalladdress\",{\"_index\":122,\"name\":{\"149\":{}},\"comment\":{}}],[\"getmulticalladdresssync\",{\"_index\":125,\"name\":{\"152\":{}},\"comment\":{}}],[\"getnetworksymbol\",{\"_index\":107,\"name\":{\"134\":{}},\"comment\":{}}],[\"getnetworksymbolsync\",{\"_index\":108,\"name\":{\"135\":{}},\"comment\":{}}],[\"getpathstringbasedcontent\",{\"_index\":105,\"name\":{\"132\":{}},\"comment\":{}}],[\"getpathstringbasedcontentsync\",{\"_index\":106,\"name\":{\"133\":{}},\"comment\":{}}],[\"getprovingkey\",{\"_index\":41,\"name\":{\"53\":{}},\"comment\":{}}],[\"getproxy\",{\"_index\":201,\"name\":{\"283\":{},\"451\":{}},\"comment\":{}}],[\"getproxyaddress\",{\"_index\":121,\"name\":{\"148\":{}},\"comment\":{}}],[\"getproxyaddresssync\",{\"_index\":124,\"name\":{\"151\":{}},\"comment\":{}}],[\"getrandomfromrange\",{\"_index\":266,\"name\":{\"376\":{}},\"comment\":{}}],[\"getregistry\",{\"_index\":202,\"name\":{\"284\":{}},\"comment\":{}}],[\"getregistryaddress\",{\"_index\":113,\"name\":{\"140\":{}},\"comment\":{}}],[\"getregistryaddresssync\",{\"_index\":114,\"name\":{\"141\":{}},\"comment\":{}}],[\"getregistrydeployblocknum\",{\"_index\":115,\"name\":{\"142\":{}},\"comment\":{}}],[\"getregistrydeployblocknumsync\",{\"_index\":116,\"name\":{\"143\":{}},\"comment\":{}}],[\"getresourcepath\",{\"_index\":84,\"name\":{\"111\":{}},\"comment\":{}}],[\"getrows\",{\"_index\":161,\"name\":{\"227\":{},\"245\":{},\"423\":{},\"439\":{}},\"comment\":{}}],[\"gettoken\",{\"_index\":204,\"name\":{\"286\":{}},\"comment\":{}}],[\"gettokenaddress\",{\"_index\":127,\"name\":{\"154\":{}},\"comment\":{}}],[\"gettokenaddresssync\",{\"_index\":128,\"name\":{\"155\":{}},\"comment\":{}}],[\"gettokenbalance\",{\"_index\":197,\"name\":{\"279\":{}},\"comment\":{}}],[\"gettokencontract\",{\"_index\":196,\"name\":{\"277\":{}},\"comment\":{}}],[\"gettokendecimals\",{\"_index\":129,\"name\":{\"156\":{},\"278\":{}},\"comment\":{}}],[\"gettokendecimalssync\",{\"_index\":130,\"name\":{\"157\":{}},\"comment\":{}}],[\"gettornadocircuit\",{\"_index\":42,\"name\":{\"54\":{}},\"comment\":{}}],[\"gettorntoken\",{\"_index\":205,\"name\":{\"287\":{}},\"comment\":{}}],[\"getuncensoredrpcurl\",{\"_index\":132,\"name\":{\"159\":{}},\"comment\":{}}],[\"getuncensoredrpcurlsync\",{\"_index\":133,\"name\":{\"160\":{}},\"comment\":{}}],[\"getvalue\",{\"_index\":99,\"name\":{\"126\":{}},\"comment\":{}}],[\"getzeroelement\",{\"_index\":39,\"name\":{\"51\":{}},\"comment\":{}}],[\"groth16\",{\"_index\":36,\"name\":{\"48\":{}},\"comment\":{}}],[\"groth16proof\",{\"_index\":18,\"name\":{\"18\":{}},\"comment\":{}}],[\"gunzipsync\",{\"_index\":80,\"name\":{\"106\":{}},\"comment\":{}}],[\"gzipsync\",{\"_index\":79,\"name\":{\"105\":{}},\"comment\":{}}],[\"handlewithdrawal\",{\"_index\":235,\"name\":{\"339\":{}},\"comment\":{}}],[\"headers\",{\"_index\":220,\"name\":{\"307\":{}},\"comment\":{}}],[\"height\",{\"_index\":26,\"name\":{\"31\":{}},\"comment\":{}}],[\"hexcommitment\",{\"_index\":9,\"name\":{\"9\":{}},\"comment\":{}}],[\"hexnullifierhash\",{\"_index\":11,\"name\":{\"11\":{},\"39\":{}},\"comment\":{}}],[\"hexutils\",{\"_index\":267,\"name\":{\"377\":{}},\"comment\":{}}],[\"httpclient\",{\"_index\":213,\"name\":{\"300\":{},\"319\":{}},\"comment\":{}}],[\"id\",{\"_index\":192,\"name\":{\"272\":{}},\"comment\":{}}],[\"indices\",{\"_index\":16,\"name\":{\"16\":{}},\"comment\":{}}],[\"initializepooler\",{\"_index\":169,\"name\":{\"236\":{},\"414\":{},\"430\":{}},\"comment\":{}}],[\"inputfor\",{\"_index\":23,\"name\":{\"24\":{}},\"comment\":{}}],[\"instancelookup\",{\"_index\":62,\"name\":{\"85\":{}},\"comment\":{}}],[\"invoice\",{\"_index\":150,\"name\":{\"196\":{},\"201\":{},\"391\":{},\"405\":{},\"407\":{}},\"comment\":{}}],[\"isopen\",{\"_index\":155,\"name\":{\"221\":{},\"240\":{},\"418\":{},\"434\":{}},\"comment\":{}}],[\"json\",{\"_index\":92,\"name\":{\"119\":{}},\"comment\":{}}],[\"jsonify\",{\"_index\":159,\"name\":{\"225\":{},\"243\":{},\"421\":{},\"437\":{}},\"comment\":{}}],[\"keys\",{\"_index\":61,\"name\":{\"84\":{}},\"comment\":{}}],[\"latestblocknum\",{\"_index\":193,\"name\":{\"274\":{}},\"comment\":{}}],[\"leafindex\",{\"_index\":30,\"name\":{\"38\":{},\"173\":{}},\"comment\":{}}],[\"leaves\",{\"_index\":27,\"name\":{\"32\":{}},\"comment\":{}}],[\"listenfordeposits\",{\"_index\":306,\"name\":{\"461\":{}},\"comment\":{}}],[\"listenforevents\",{\"_index\":179,\"name\":{\"257\":{},\"293\":{},\"487\":{}},\"comment\":{}}],[\"listenforinstanceevents\",{\"_index\":308,\"name\":{\"463\":{}},\"comment\":{}}],[\"listenforwithdrawals\",{\"_index\":307,\"name\":{\"462\":{}},\"comment\":{}}],[\"load\",{\"_index\":93,\"name\":{\"120\":{}},\"comment\":{}}],[\"loadcache\",{\"_index\":208,\"name\":{\"292\":{},\"483\":{}},\"comment\":{}}],[\"loaddepositcache\",{\"_index\":325,\"name\":{\"481\":{}},\"comment\":{}}],[\"loadinstance\",{\"_index\":327,\"name\":{\"484\":{}},\"comment\":{}}],[\"loadinvoicescache\",{\"_index\":324,\"name\":{\"480\":{}},\"comment\":{}}],[\"loadmap\",{\"_index\":96,\"name\":{\"123\":{}},\"comment\":{}}],[\"loadnotes\",{\"_index\":302,\"name\":{\"456\":{}},\"comment\":{}}],[\"loadnotescache\",{\"_index\":323,\"name\":{\"479\":{}},\"comment\":{}}],[\"loadraw\",{\"_index\":88,\"name\":{\"115\":{}},\"comment\":{}}],[\"loadrawsync\",{\"_index\":89,\"name\":{\"116\":{}},\"comment\":{}}],[\"loadsync\",{\"_index\":94,\"name\":{\"121\":{}},\"comment\":{}}],[\"loadwithdrawalcache\",{\"_index\":326,\"name\":{\"482\":{}},\"comment\":{}}],[\"makecachedir\",{\"_index\":87,\"name\":{\"114\":{}},\"comment\":{}}],[\"merkle_tree_height\",{\"_index\":137,\"name\":{\"164\":{}},\"comment\":{}}],[\"merkleproof\",{\"_index\":12,\"name\":{\"12\":{},\"22\":{}},\"comment\":{}}],[\"merkletreeheight\",{\"_index\":286,\"name\":{\"399\":{}},\"comment\":{}}],[\"miningfeepercent\",{\"_index\":67,\"name\":{\"93\":{},\"209\":{},\"333\":{}},\"comment\":{}}],[\"msg\",{\"_index\":24,\"name\":{\"26\":{}},\"comment\":{}}],[\"mstimeout\",{\"_index\":178,\"name\":{\"256\":{}},\"comment\":{}}],[\"name\",{\"_index\":154,\"name\":{\"220\":{},\"239\":{},\"417\":{},\"433\":{}},\"comment\":{}}],[\"network\",{\"_index\":52,\"name\":{\"66\":{},\"74\":{},\"81\":{},\"86\":{},\"190\":{},\"198\":{},\"246\":{}},\"comment\":{}}],[\"note\",{\"_index\":149,\"name\":{\"188\":{},\"193\":{},\"406\":{}},\"comment\":{}}],[\"nullifier\",{\"_index\":5,\"name\":{\"5\":{},\"28\":{},\"46\":{}},\"comment\":{}}],[\"nullifierhash\",{\"_index\":10,\"name\":{\"10\":{},\"183\":{}},\"comment\":{}}],[\"numbertohex\",{\"_index\":269,\"name\":{\"379\":{}},\"comment\":{}}],[\"numberutils\",{\"_index\":264,\"name\":{\"374\":{}},\"comment\":{}}],[\"obfuscationoptions\",{\"_index\":218,\"name\":{\"305\":{}},\"comment\":{}}],[\"objectutils\",{\"_index\":272,\"name\":{\"382\":{}},\"comment\":{}}],[\"offchain\",{\"_index\":131,\"name\":{\"158\":{}},\"comment\":{}}],[\"onchain\",{\"_index\":100,\"name\":{\"127\":{}},\"comment\":{}}],[\"options\",{\"_index\":71,\"name\":{\"97\":{},\"249\":{},\"297\":{},\"386\":{}},\"comment\":{}}],[\"outputof\",{\"_index\":2,\"name\":{\"2\":{}},\"comment\":{}}],[\"parentpath\",{\"_index\":77,\"name\":{\"103\":{}},\"comment\":{}}],[\"parsenote\",{\"_index\":48,\"name\":{\"60\":{},\"458\":{}},\"comment\":{}}],[\"parsenotes\",{\"_index\":303,\"name\":{\"457\":{}},\"comment\":{}}],[\"path\",{\"_index\":14,\"name\":{\"14\":{}},\"comment\":{}}],[\"pathgetter\",{\"_index\":82,\"name\":{\"108\":{}},\"comment\":{}}],[\"pedersenhash\",{\"_index\":3,\"name\":{\"3\":{},\"25\":{}},\"comment\":{}}],[\"pending\",{\"_index\":251,\"name\":{\"360\":{}},\"comment\":{}}],[\"persistent\",{\"_index\":75,\"name\":{\"101\":{}},\"comment\":{}}],[\"pi_a\",{\"_index\":19,\"name\":{\"19\":{}},\"comment\":{}}],[\"pi_b\",{\"_index\":20,\"name\":{\"20\":{}},\"comment\":{}}],[\"pi_c\",{\"_index\":21,\"name\":{\"21\":{}},\"comment\":{}}],[\"pool\",{\"_index\":254,\"name\":{\"363\":{}},\"comment\":{}}],[\"pooler\",{\"_index\":165,\"name\":{\"232\":{},\"413\":{},\"429\":{}},\"comment\":{}}],[\"poolmany\",{\"_index\":253,\"name\":{\"362\":{}},\"comment\":{}}],[\"populate\",{\"_index\":273,\"name\":{\"383\":{}},\"comment\":{}}],[\"populatebatchcall\",{\"_index\":198,\"name\":{\"280\":{}},\"comment\":{}}],[\"port\",{\"_index\":219,\"name\":{\"306\":{}},\"comment\":{}}],[\"preimage\",{\"_index\":7,\"name\":{\"7\":{}},\"comment\":{}}],[\"prepareaddress\",{\"_index\":271,\"name\":{\"381\":{}},\"comment\":{}}],[\"prices\",{\"_index\":70,\"name\":{\"96\":{},\"212\":{},\"336\":{}},\"comment\":{}}],[\"primitives\",{\"_index\":45,\"name\":{\"57\":{}},\"comment\":{}}],[\"private\",{\"_index\":35,\"name\":{\"44\":{}},\"comment\":{}}],[\"promisepooler\",{\"_index\":245,\"name\":{\"352\":{}},\"comment\":{}}],[\"properties\",{\"_index\":233,\"name\":{\"337\":{}},\"comment\":{}}],[\"provider\",{\"_index\":181,\"name\":{\"261\":{}},\"comment\":{}}],[\"public\",{\"_index\":28,\"name\":{\"34\":{}},\"comment\":{}}],[\"race\",{\"_index\":256,\"name\":{\"365\":{}},\"comment\":{}}],[\"randombiginteger\",{\"_index\":265,\"name\":{\"375\":{}},\"comment\":{}}],[\"recipientaddress\",{\"_index\":31,\"name\":{\"40\":{}},\"comment\":{}}],[\"refund\",{\"_index\":34,\"name\":{\"43\":{}},\"comment\":{}}],[\"regularhttpclient\",{\"_index\":224,\"name\":{\"313\":{}},\"comment\":{}}],[\"relayer\",{\"_index\":151,\"name\":{\"204\":{},\"298\":{},\"315\":{}},\"comment\":{}}],[\"relayeraddress\",{\"_index\":32,\"name\":{\"41\":{}},\"comment\":{}}],[\"relayeroptions\",{\"_index\":217,\"name\":{\"304\":{}},\"comment\":{}}],[\"relayerproperties\",{\"_index\":64,\"name\":{\"89\":{}},\"comment\":{}}],[\"remember\",{\"_index\":237,\"name\":{\"341\":{}},\"comment\":{}}],[\"request\",{\"_index\":288,\"name\":{\"404\":{}},\"comment\":{}}],[\"reset\",{\"_index\":257,\"name\":{\"366\":{}},\"comment\":{}}],[\"root\",{\"_index\":13,\"name\":{\"13\":{},\"36\":{}},\"comment\":{}}],[\"rv\",{\"_index\":221,\"name\":{\"308\":{}},\"comment\":{}}],[\"secret\",{\"_index\":6,\"name\":{\"6\":{},\"29\":{},\"47\":{}},\"comment\":{}}],[\"servicefeepercent\",{\"_index\":66,\"name\":{\"92\":{},\"208\":{},\"332\":{}},\"comment\":{}}],[\"setup\",{\"_index\":38,\"name\":{\"50\":{}},\"comment\":{}}],[\"signer\",{\"_index\":191,\"name\":{\"271\":{}},\"comment\":{}}],[\"simplemutex\",{\"_index\":261,\"name\":{\"370\":{}},\"comment\":{}}],[\"startblock\",{\"_index\":173,\"name\":{\"251\":{}},\"comment\":{}}],[\"status\",{\"_index\":68,\"name\":{\"94\":{},\"210\":{},\"334\":{}},\"comment\":{}}],[\"stripextensions\",{\"_index\":78,\"name\":{\"104\":{}},\"comment\":{}}],[\"success\",{\"_index\":215,\"name\":{\"302\":{}},\"comment\":{}}],[\"swap\",{\"_index\":274,\"name\":{\"384\":{}},\"comment\":{}}],[\"symbol\",{\"_index\":53,\"name\":{\"67\":{},\"75\":{},\"273\":{}},\"comment\":{}}],[\"sync\",{\"_index\":172,\"name\":{\"250\":{},\"291\":{},\"400\":{},\"486\":{}},\"comment\":{}}],[\"syncable\",{\"_index\":164,\"name\":{\"230\":{}},\"comment\":{}}],[\"syncdeposits\",{\"_index\":314,\"name\":{\"469\":{}},\"comment\":{}}],[\"syncerrorhandler\",{\"_index\":170,\"name\":{\"247\":{}},\"comment\":{}}],[\"synchronizer\",{\"_index\":206,\"name\":{\"288\":{}},\"comment\":{}}],[\"syncwithdrawals\",{\"_index\":315,\"name\":{\"470\":{}},\"comment\":{}}],[\"targetblock\",{\"_index\":174,\"name\":{\"252\":{}},\"comment\":{}}],[\"terminategroth16\",{\"_index\":44,\"name\":{\"56\":{}},\"comment\":{}}],[\"throwerror\",{\"_index\":98,\"name\":{\"125\":{}},\"comment\":{}}],[\"timeout\",{\"_index\":242,\"name\":{\"347\":{}},\"comment\":{}}],[\"timestamp\",{\"_index\":146,\"name\":{\"176\":{}},\"comment\":{}}],[\"to\",{\"_index\":148,\"name\":{\"182\":{}},\"comment\":{}}],[\"token\",{\"_index\":63,\"name\":{\"87\":{},\"191\":{},\"199\":{}},\"comment\":{}}],[\"tokendata\",{\"_index\":60,\"name\":{\"80\":{}},\"comment\":{}}],[\"tokendecimals\",{\"_index\":282,\"name\":{\"395\":{}},\"comment\":{}}],[\"tomap\",{\"_index\":95,\"name\":{\"122\":{}},\"comment\":{}}],[\"torhttpclient\",{\"_index\":223,\"name\":{\"311\":{}},\"comment\":{}}],[\"tornadocontracts\",{\"_index\":171,\"name\":{\"248\":{}},\"comment\":{}}],[\"tornadoinstance\",{\"_index\":51,\"name\":{\"65\":{}},\"comment\":{}}],[\"torprovider\",{\"_index\":222,\"name\":{\"309\":{}},\"comment\":{}}],[\"totaladded\",{\"_index\":252,\"name\":{\"361\":{}},\"comment\":{}}],[\"transactionhash\",{\"_index\":145,\"name\":{\"175\":{},\"184\":{}},\"comment\":{}}],[\"transactions\",{\"_index\":287,\"name\":{\"402\":{}},\"comment\":{}}],[\"tree\",{\"_index\":29,\"name\":{\"37\":{}},\"comment\":{}}],[\"txhash\",{\"_index\":216,\"name\":{\"303\":{}},\"comment\":{}}],[\"url\",{\"_index\":212,\"name\":{\"299\":{},\"318\":{}},\"comment\":{}}],[\"utils\",{\"_index\":238,\"name\":{\"342\":{}},\"comment\":{}}],[\"version\",{\"_index\":65,\"name\":{\"91\":{},\"207\":{},\"331\":{}},\"comment\":{}}],[\"web\",{\"_index\":211,\"name\":{\"296\":{}},\"comment\":{}}],[\"wipecache\",{\"_index\":81,\"name\":{\"107\":{}},\"comment\":{}}],[\"withdrawal\",{\"_index\":147,\"name\":{\"179\":{}},\"comment\":{}}],[\"withdrawalcache\",{\"_index\":290,\"name\":{\"424\":{}},\"comment\":{}}],[\"withdrawalrequestresult\",{\"_index\":214,\"name\":{\"301\":{}},\"comment\":{}}],[\"writeraw\",{\"_index\":90,\"name\":{\"117\":{}},\"comment\":{}}],[\"writerawsync\",{\"_index\":91,\"name\":{\"118\":{}},\"comment\":{}}],[\"zip\",{\"_index\":158,\"name\":{\"224\":{},\"242\":{},\"420\":{},\"436\":{}},\"comment\":{}}]],\"pipeline\":[]}}"); \ No newline at end of file +window.searchData = JSON.parse("{\"rows\":[{\"kind\":4,\"name\":\"Crypto\",\"url\":\"modules/Crypto.html\",\"classes\":\"\"},{\"kind\":4194304,\"name\":\"bigInt\",\"url\":\"types/Crypto.bigInt.html\",\"classes\":\"\",\"parent\":\"Crypto\"},{\"kind\":4,\"name\":\"OutputOf\",\"url\":\"modules/Crypto.OutputOf.html\",\"classes\":\"\",\"parent\":\"Crypto\"},{\"kind\":4194304,\"name\":\"PedersenHash\",\"url\":\"types/Crypto.OutputOf.PedersenHash.html\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf\"},{\"kind\":256,\"name\":\"CreateDeposit\",\"url\":\"interfaces/Crypto.OutputOf.CreateDeposit.html\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf\"},{\"kind\":1024,\"name\":\"nullifier\",\"url\":\"interfaces/Crypto.OutputOf.CreateDeposit.html#nullifier\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.CreateDeposit\"},{\"kind\":1024,\"name\":\"secret\",\"url\":\"interfaces/Crypto.OutputOf.CreateDeposit.html#secret\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.CreateDeposit\"},{\"kind\":1024,\"name\":\"preimage\",\"url\":\"interfaces/Crypto.OutputOf.CreateDeposit.html#preimage\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.CreateDeposit\"},{\"kind\":1024,\"name\":\"commitment\",\"url\":\"interfaces/Crypto.OutputOf.CreateDeposit.html#commitment\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.CreateDeposit\"},{\"kind\":1024,\"name\":\"hexCommitment\",\"url\":\"interfaces/Crypto.OutputOf.CreateDeposit.html#hexCommitment\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.CreateDeposit\"},{\"kind\":1024,\"name\":\"nullifierHash\",\"url\":\"interfaces/Crypto.OutputOf.CreateDeposit.html#nullifierHash\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.CreateDeposit\"},{\"kind\":1024,\"name\":\"hexNullifierHash\",\"url\":\"interfaces/Crypto.OutputOf.CreateDeposit.html#hexNullifierHash\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.CreateDeposit\"},{\"kind\":256,\"name\":\"MerkleProof\",\"url\":\"interfaces/Crypto.OutputOf.MerkleProof.html\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf\"},{\"kind\":1024,\"name\":\"root\",\"url\":\"interfaces/Crypto.OutputOf.MerkleProof.html#root\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.MerkleProof\"},{\"kind\":1024,\"name\":\"path\",\"url\":\"interfaces/Crypto.OutputOf.MerkleProof.html#path\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.MerkleProof\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Crypto.OutputOf.MerkleProof.html#path.__type\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.MerkleProof.path\"},{\"kind\":1024,\"name\":\"indices\",\"url\":\"interfaces/Crypto.OutputOf.MerkleProof.html#path.__type.indices\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.MerkleProof.path.__type\"},{\"kind\":1024,\"name\":\"elements\",\"url\":\"interfaces/Crypto.OutputOf.MerkleProof.html#path.__type.elements\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.MerkleProof.path.__type\"},{\"kind\":256,\"name\":\"Groth16Proof\",\"url\":\"interfaces/Crypto.OutputOf.Groth16Proof.html\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf\"},{\"kind\":1024,\"name\":\"pi_a\",\"url\":\"interfaces/Crypto.OutputOf.Groth16Proof.html#pi_a\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.Groth16Proof\"},{\"kind\":1024,\"name\":\"pi_b\",\"url\":\"interfaces/Crypto.OutputOf.Groth16Proof.html#pi_b\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.Groth16Proof\"},{\"kind\":1024,\"name\":\"pi_c\",\"url\":\"interfaces/Crypto.OutputOf.Groth16Proof.html#pi_c\",\"classes\":\"\",\"parent\":\"Crypto.OutputOf.Groth16Proof\"},{\"kind\":4194304,\"name\":\"MerkleProof\",\"url\":\"types/Crypto.MerkleProof.html\",\"classes\":\"\",\"parent\":\"Crypto\"},{\"kind\":4194304,\"name\":\"DepositProof\",\"url\":\"types/Crypto.DepositProof.html\",\"classes\":\"\",\"parent\":\"Crypto\"},{\"kind\":4,\"name\":\"InputFor\",\"url\":\"modules/Crypto.InputFor.html\",\"classes\":\"\",\"parent\":\"Crypto\"},{\"kind\":256,\"name\":\"PedersenHash\",\"url\":\"interfaces/Crypto.InputFor.PedersenHash.html\",\"classes\":\"\",\"parent\":\"Crypto.InputFor\"},{\"kind\":1024,\"name\":\"msg\",\"url\":\"interfaces/Crypto.InputFor.PedersenHash.html#msg\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.PedersenHash\"},{\"kind\":256,\"name\":\"CreateDeposit\",\"url\":\"interfaces/Crypto.InputFor.CreateDeposit.html\",\"classes\":\"\",\"parent\":\"Crypto.InputFor\"},{\"kind\":1024,\"name\":\"nullifier\",\"url\":\"interfaces/Crypto.InputFor.CreateDeposit.html#nullifier\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.CreateDeposit\"},{\"kind\":1024,\"name\":\"secret\",\"url\":\"interfaces/Crypto.InputFor.CreateDeposit.html#secret\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.CreateDeposit\"},{\"kind\":256,\"name\":\"BuildMerkleTree\",\"url\":\"interfaces/Crypto.InputFor.BuildMerkleTree.html\",\"classes\":\"\",\"parent\":\"Crypto.InputFor\"},{\"kind\":1024,\"name\":\"height\",\"url\":\"interfaces/Crypto.InputFor.BuildMerkleTree.html#height\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.BuildMerkleTree\"},{\"kind\":1024,\"name\":\"leaves\",\"url\":\"interfaces/Crypto.InputFor.BuildMerkleTree.html#leaves\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.BuildMerkleTree\"},{\"kind\":256,\"name\":\"DepositProof\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html\",\"classes\":\"\",\"parent\":\"Crypto.InputFor\"},{\"kind\":1024,\"name\":\"public\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public\"},{\"kind\":1024,\"name\":\"root\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1.root\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public.__type\"},{\"kind\":1024,\"name\":\"tree\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1.tree\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public.__type\"},{\"kind\":1024,\"name\":\"leafIndex\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1.leafIndex\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public.__type\"},{\"kind\":1024,\"name\":\"hexNullifierHash\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1.hexNullifierHash\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public.__type\"},{\"kind\":1024,\"name\":\"recipientAddress\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1.recipientAddress\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public.__type\"},{\"kind\":1024,\"name\":\"relayerAddress\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1.relayerAddress\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public.__type\"},{\"kind\":1024,\"name\":\"fee\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1.fee\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public.__type\"},{\"kind\":1024,\"name\":\"refund\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#public.__type-1.refund\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.public.__type\"},{\"kind\":1024,\"name\":\"private\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#private\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#private.__type\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.private\"},{\"kind\":1024,\"name\":\"nullifier\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#private.__type.nullifier\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.private.__type\"},{\"kind\":1024,\"name\":\"secret\",\"url\":\"interfaces/Crypto.InputFor.DepositProof.html#private.__type.secret\",\"classes\":\"\",\"parent\":\"Crypto.InputFor.DepositProof.private.__type\"},{\"kind\":4194304,\"name\":\"Groth16\",\"url\":\"types/Crypto.InputFor.Groth16.html\",\"classes\":\"\",\"parent\":\"Crypto.InputFor\"},{\"kind\":4194304,\"name\":\"DepositInfo\",\"url\":\"types/Crypto.DepositInfo.html\",\"classes\":\"\",\"parent\":\"Crypto\"},{\"kind\":4,\"name\":\"Setup\",\"url\":\"modules/Crypto.Setup.html\",\"classes\":\"\",\"parent\":\"Crypto\"},{\"kind\":64,\"name\":\"getZeroElement\",\"url\":\"functions/Crypto.Setup.getZeroElement.html\",\"classes\":\"\",\"parent\":\"Crypto.Setup\"},{\"kind\":64,\"name\":\"getDefaultHash\",\"url\":\"functions/Crypto.Setup.getDefaultHash.html\",\"classes\":\"\",\"parent\":\"Crypto.Setup\"},{\"kind\":64,\"name\":\"getProvingKey\",\"url\":\"functions/Crypto.Setup.getProvingKey.html\",\"classes\":\"\",\"parent\":\"Crypto.Setup\"},{\"kind\":64,\"name\":\"getTornadoCircuit\",\"url\":\"functions/Crypto.Setup.getTornadoCircuit.html\",\"classes\":\"\",\"parent\":\"Crypto.Setup\"},{\"kind\":64,\"name\":\"getGroth16\",\"url\":\"functions/Crypto.Setup.getGroth16.html\",\"classes\":\"\",\"parent\":\"Crypto.Setup\"},{\"kind\":64,\"name\":\"terminateGroth16\",\"url\":\"functions/Crypto.Setup.terminateGroth16.html\",\"classes\":\"\",\"parent\":\"Crypto.Setup\"},{\"kind\":4,\"name\":\"Primitives\",\"url\":\"modules/Crypto.Primitives.html\",\"classes\":\"\",\"parent\":\"Crypto\"},{\"kind\":64,\"name\":\"calcPedersenHash\",\"url\":\"functions/Crypto.Primitives.calcPedersenHash.html\",\"classes\":\"\",\"parent\":\"Crypto.Primitives\"},{\"kind\":64,\"name\":\"createNote\",\"url\":\"functions/Crypto.Primitives.createNote.html\",\"classes\":\"\",\"parent\":\"Crypto.Primitives\"},{\"kind\":64,\"name\":\"parseNote\",\"url\":\"functions/Crypto.Primitives.parseNote.html\",\"classes\":\"\",\"parent\":\"Crypto.Primitives\"},{\"kind\":64,\"name\":\"createDeposit\",\"url\":\"functions/Crypto.Primitives.createDeposit.html\",\"classes\":\"\",\"parent\":\"Crypto.Primitives\"},{\"kind\":64,\"name\":\"buildMerkleTree\",\"url\":\"functions/Crypto.Primitives.buildMerkleTree.html\",\"classes\":\"\",\"parent\":\"Crypto.Primitives\"},{\"kind\":64,\"name\":\"calcDepositProofs\",\"url\":\"functions/Crypto.Primitives.calcDepositProofs.html\",\"classes\":\"\",\"parent\":\"Crypto.Primitives\"},{\"kind\":4,\"name\":\"Data\",\"url\":\"modules/Data.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"TornadoInstance\",\"url\":\"interfaces/Data.TornadoInstance.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":1024,\"name\":\"network\",\"url\":\"interfaces/Data.TornadoInstance.html#network\",\"classes\":\"\",\"parent\":\"Data.TornadoInstance\"},{\"kind\":1024,\"name\":\"symbol\",\"url\":\"interfaces/Data.TornadoInstance.html#symbol\",\"classes\":\"\",\"parent\":\"Data.TornadoInstance\"},{\"kind\":1024,\"name\":\"decimals\",\"url\":\"interfaces/Data.TornadoInstance.html#decimals\",\"classes\":\"\",\"parent\":\"Data.TornadoInstance\"},{\"kind\":1024,\"name\":\"denomination\",\"url\":\"interfaces/Data.TornadoInstance.html#denomination\",\"classes\":\"\",\"parent\":\"Data.TornadoInstance\"},{\"kind\":1024,\"name\":\"deployBlock\",\"url\":\"interfaces/Data.TornadoInstance.html#deployBlock\",\"classes\":\"\",\"parent\":\"Data.TornadoInstance\"},{\"kind\":1024,\"name\":\"address\",\"url\":\"interfaces/Data.TornadoInstance.html#address\",\"classes\":\"\",\"parent\":\"Data.TornadoInstance\"},{\"kind\":256,\"name\":\"ClassicInstance\",\"url\":\"interfaces/Data.ClassicInstance.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":1024,\"name\":\"anonymityMiningEnabled\",\"url\":\"interfaces/Data.ClassicInstance.html#anonymityMiningEnabled\",\"classes\":\"\",\"parent\":\"Data.ClassicInstance\"},{\"kind\":1024,\"name\":\"network\",\"url\":\"interfaces/Data.ClassicInstance.html#network\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.ClassicInstance\"},{\"kind\":1024,\"name\":\"symbol\",\"url\":\"interfaces/Data.ClassicInstance.html#symbol\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.ClassicInstance\"},{\"kind\":1024,\"name\":\"decimals\",\"url\":\"interfaces/Data.ClassicInstance.html#decimals\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.ClassicInstance\"},{\"kind\":1024,\"name\":\"denomination\",\"url\":\"interfaces/Data.ClassicInstance.html#denomination\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.ClassicInstance\"},{\"kind\":1024,\"name\":\"deployBlock\",\"url\":\"interfaces/Data.ClassicInstance.html#deployBlock\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.ClassicInstance\"},{\"kind\":1024,\"name\":\"address\",\"url\":\"interfaces/Data.ClassicInstance.html#address\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.ClassicInstance\"},{\"kind\":256,\"name\":\"TokenData\",\"url\":\"interfaces/Data.TokenData.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":1024,\"name\":\"network\",\"url\":\"interfaces/Data.TokenData.html#network\",\"classes\":\"\",\"parent\":\"Data.TokenData\"},{\"kind\":1024,\"name\":\"decimals\",\"url\":\"interfaces/Data.TokenData.html#decimals\",\"classes\":\"\",\"parent\":\"Data.TokenData\"},{\"kind\":1024,\"name\":\"address\",\"url\":\"interfaces/Data.TokenData.html#address\",\"classes\":\"\",\"parent\":\"Data.TokenData\"},{\"kind\":4,\"name\":\"Keys\",\"url\":\"modules/Data.Keys.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":256,\"name\":\"InstanceLookup\",\"url\":\"interfaces/Data.Keys.InstanceLookup.html\",\"classes\":\"\",\"parent\":\"Data.Keys\"},{\"kind\":1024,\"name\":\"network\",\"url\":\"interfaces/Data.Keys.InstanceLookup.html#network\",\"classes\":\"\",\"parent\":\"Data.Keys.InstanceLookup\"},{\"kind\":1024,\"name\":\"token\",\"url\":\"interfaces/Data.Keys.InstanceLookup.html#token\",\"classes\":\"\",\"parent\":\"Data.Keys.InstanceLookup\"},{\"kind\":1024,\"name\":\"denomination\",\"url\":\"interfaces/Data.Keys.InstanceLookup.html#denomination\",\"classes\":\"\",\"parent\":\"Data.Keys.InstanceLookup\"},{\"kind\":256,\"name\":\"RelayerProperties\",\"url\":\"interfaces/Data.RelayerProperties.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":1024,\"name\":\"address\",\"url\":\"interfaces/Data.RelayerProperties.html#address\",\"classes\":\"\",\"parent\":\"Data.RelayerProperties\"},{\"kind\":1024,\"name\":\"version\",\"url\":\"interfaces/Data.RelayerProperties.html#version\",\"classes\":\"\",\"parent\":\"Data.RelayerProperties\"},{\"kind\":1024,\"name\":\"serviceFeePercent\",\"url\":\"interfaces/Data.RelayerProperties.html#serviceFeePercent\",\"classes\":\"\",\"parent\":\"Data.RelayerProperties\"},{\"kind\":1024,\"name\":\"miningFeePercent\",\"url\":\"interfaces/Data.RelayerProperties.html#miningFeePercent\",\"classes\":\"\",\"parent\":\"Data.RelayerProperties\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"interfaces/Data.RelayerProperties.html#status\",\"classes\":\"\",\"parent\":\"Data.RelayerProperties\"},{\"kind\":1024,\"name\":\"chainId\",\"url\":\"interfaces/Data.RelayerProperties.html#chainId\",\"classes\":\"\",\"parent\":\"Data.RelayerProperties\"},{\"kind\":1024,\"name\":\"prices\",\"url\":\"interfaces/Data.RelayerProperties.html#prices\",\"classes\":\"\",\"parent\":\"Data.RelayerProperties\"},{\"kind\":4,\"name\":\"Options\",\"url\":\"modules/Data.Options.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":256,\"name\":\"Cache\",\"url\":\"interfaces/Data.Options.Cache.html\",\"classes\":\"\",\"parent\":\"Data.Options\"},{\"kind\":1024,\"name\":\"adapter\",\"url\":\"interfaces/Data.Options.Cache.html#adapter\",\"classes\":\"\",\"parent\":\"Data.Options.Cache\"},{\"kind\":1024,\"name\":\"dirPath\",\"url\":\"interfaces/Data.Options.Cache.html#dirPath\",\"classes\":\"\",\"parent\":\"Data.Options.Cache\"},{\"kind\":1024,\"name\":\"persistent\",\"url\":\"interfaces/Data.Options.Cache.html#persistent\",\"classes\":\"\",\"parent\":\"Data.Options.Cache\"},{\"kind\":4,\"name\":\"Files\",\"url\":\"modules/Data.Files.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":64,\"name\":\"parentPath\",\"url\":\"functions/Data.Files.parentPath.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"stripExtensions\",\"url\":\"functions/Data.Files.stripExtensions.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"gzipSync\",\"url\":\"functions/Data.Files.gzipSync.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"gunzipSync\",\"url\":\"functions/Data.Files.gunzipSync.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"wipeCache\",\"url\":\"functions/Data.Files.wipeCache.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":4194304,\"name\":\"PathGetter\",\"url\":\"types/Data.Files.PathGetter.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/Data.Files.PathGetter.html#__type\",\"classes\":\"\",\"parent\":\"Data.Files.PathGetter\"},{\"kind\":64,\"name\":\"getModulesPath\",\"url\":\"functions/Data.Files.getModulesPath.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"getResourcePath\",\"url\":\"functions/Data.Files.getResourcePath.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"getCachePath\",\"url\":\"functions/Data.Files.getCachePath.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"cacheDirExists\",\"url\":\"functions/Data.Files.cacheDirExists.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"makeCacheDir\",\"url\":\"functions/Data.Files.makeCacheDir.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"loadRaw\",\"url\":\"functions/Data.Files.loadRaw.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"loadRawSync\",\"url\":\"functions/Data.Files.loadRawSync.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"writeRaw\",\"url\":\"functions/Data.Files.writeRaw.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":64,\"name\":\"writeRawSync\",\"url\":\"functions/Data.Files.writeRawSync.html\",\"classes\":\"\",\"parent\":\"Data.Files\"},{\"kind\":4,\"name\":\"Json\",\"url\":\"modules/Data.Json.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":64,\"name\":\"load\",\"url\":\"functions/Data.Json.load.html\",\"classes\":\"\",\"parent\":\"Data.Json\"},{\"kind\":64,\"name\":\"loadSync\",\"url\":\"functions/Data.Json.loadSync.html\",\"classes\":\"\",\"parent\":\"Data.Json\"},{\"kind\":64,\"name\":\"toMap\",\"url\":\"functions/Data.Json.toMap.html\",\"classes\":\"\",\"parent\":\"Data.Json\"},{\"kind\":64,\"name\":\"loadMap\",\"url\":\"functions/Data.Json.loadMap.html\",\"classes\":\"\",\"parent\":\"Data.Json\"},{\"kind\":64,\"name\":\"getError\",\"url\":\"functions/Data.Json.getError.html\",\"classes\":\"\",\"parent\":\"Data.Json\"},{\"kind\":64,\"name\":\"throwError\",\"url\":\"functions/Data.Json.throwError.html\",\"classes\":\"\",\"parent\":\"Data.Json\"},{\"kind\":64,\"name\":\"getValue\",\"url\":\"functions/Data.Json.getValue.html\",\"classes\":\"\",\"parent\":\"Data.Json\"},{\"kind\":4,\"name\":\"Onchain\",\"url\":\"modules/Data.Onchain.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":64,\"name\":\"getClassicInstanceData\",\"url\":\"functions/Data.Onchain.getClassicInstanceData.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getClassicInstanceDataSync\",\"url\":\"functions/Data.Onchain.getClassicInstanceDataSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceLookupKeys\",\"url\":\"functions/Data.Onchain.getInstanceLookupKeys.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceLookupKeysSync\",\"url\":\"functions/Data.Onchain.getInstanceLookupKeysSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getPathstringBasedContent\",\"url\":\"functions/Data.Onchain.getPathstringBasedContent.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getPathstringBasedContentSync\",\"url\":\"functions/Data.Onchain.getPathstringBasedContentSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getNetworkSymbol\",\"url\":\"functions/Data.Onchain.getNetworkSymbol.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getNetworkSymbolSync\",\"url\":\"functions/Data.Onchain.getNetworkSymbolSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceAddresses\",\"url\":\"functions/Data.Onchain.getInstanceAddresses.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceAddressesSync\",\"url\":\"functions/Data.Onchain.getInstanceAddressesSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceAddress\",\"url\":\"functions/Data.Onchain.getInstanceAddress.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceAddressSync\",\"url\":\"functions/Data.Onchain.getInstanceAddressSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getRegistryAddress\",\"url\":\"functions/Data.Onchain.getRegistryAddress.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getRegistryAddressSync\",\"url\":\"functions/Data.Onchain.getRegistryAddressSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getRegistryDeployBlockNum\",\"url\":\"functions/Data.Onchain.getRegistryDeployBlockNum.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getRegistryDeployBlockNumSync\",\"url\":\"functions/Data.Onchain.getRegistryDeployBlockNumSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceDeployBlockNums\",\"url\":\"functions/Data.Onchain.getInstanceDeployBlockNums.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceDeployBlockNumsSync\",\"url\":\"functions/Data.Onchain.getInstanceDeployBlockNumsSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceDeployBlockNum\",\"url\":\"functions/Data.Onchain.getInstanceDeployBlockNum.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getInstanceDeployBlockNumSync\",\"url\":\"functions/Data.Onchain.getInstanceDeployBlockNumSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getProxyAddress\",\"url\":\"functions/Data.Onchain.getProxyAddress.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getMulticallAddress\",\"url\":\"functions/Data.Onchain.getMulticallAddress.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getMulticall3Address\",\"url\":\"functions/Data.Onchain.getMulticall3Address.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getProxyAddressSync\",\"url\":\"functions/Data.Onchain.getProxyAddressSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getMulticallAddressSync\",\"url\":\"functions/Data.Onchain.getMulticallAddressSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getMulticall3AddressSync\",\"url\":\"functions/Data.Onchain.getMulticall3AddressSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getTokenAddress\",\"url\":\"functions/Data.Onchain.getTokenAddress.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getTokenAddressSync\",\"url\":\"functions/Data.Onchain.getTokenAddressSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getTokenDecimals\",\"url\":\"functions/Data.Onchain.getTokenDecimals.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":64,\"name\":\"getTokenDecimalsSync\",\"url\":\"functions/Data.Onchain.getTokenDecimalsSync.html\",\"classes\":\"\",\"parent\":\"Data.Onchain\"},{\"kind\":4,\"name\":\"Offchain\",\"url\":\"modules/Data.Offchain.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":64,\"name\":\"getUncensoredRpcURL\",\"url\":\"functions/Data.Offchain.getUncensoredRpcURL.html\",\"classes\":\"\",\"parent\":\"Data.Offchain\"},{\"kind\":64,\"name\":\"getUncensoredRpcURLSync\",\"url\":\"functions/Data.Offchain.getUncensoredRpcURLSync.html\",\"classes\":\"\",\"parent\":\"Data.Offchain\"},{\"kind\":64,\"name\":\"getClassicSubgraphURL\",\"url\":\"functions/Data.Offchain.getClassicSubgraphURL.html\",\"classes\":\"\",\"parent\":\"Data.Offchain\"},{\"kind\":64,\"name\":\"getClassicSubgraphURLSync\",\"url\":\"functions/Data.Offchain.getClassicSubgraphURLSync.html\",\"classes\":\"\",\"parent\":\"Data.Offchain\"},{\"kind\":4,\"name\":\"Constants\",\"url\":\"modules/Data.Constants.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":32,\"name\":\"MERKLE_TREE_HEIGHT\",\"url\":\"variables/Data.Constants.MERKLE_TREE_HEIGHT.html\",\"classes\":\"\",\"parent\":\"Data.Constants\"},{\"kind\":4,\"name\":\"Docs\",\"url\":\"modules/Data.Docs.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":128,\"name\":\"Base\",\"url\":\"classes/Data.Docs.Base.html\",\"classes\":\"\",\"parent\":\"Data.Docs\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Data.Docs.Base.html#constructor\",\"classes\":\"\",\"parent\":\"Data.Docs.Base\"},{\"kind\":1024,\"name\":\"_id\",\"url\":\"classes/Data.Docs.Base.html#_id\",\"classes\":\"\",\"parent\":\"Data.Docs.Base\"},{\"kind\":1024,\"name\":\"_rev\",\"url\":\"classes/Data.Docs.Base.html#_rev\",\"classes\":\"\",\"parent\":\"Data.Docs.Base\"},{\"kind\":128,\"name\":\"Deposit\",\"url\":\"classes/Data.Docs.Deposit.html\",\"classes\":\"\",\"parent\":\"Data.Docs\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Data.Docs.Deposit.html#constructor\",\"classes\":\"\",\"parent\":\"Data.Docs.Deposit\"},{\"kind\":1024,\"name\":\"blockNumber\",\"url\":\"classes/Data.Docs.Deposit.html#blockNumber\",\"classes\":\"\",\"parent\":\"Data.Docs.Deposit\"},{\"kind\":1024,\"name\":\"leafIndex\",\"url\":\"classes/Data.Docs.Deposit.html#leafIndex\",\"classes\":\"\",\"parent\":\"Data.Docs.Deposit\"},{\"kind\":1024,\"name\":\"commitment\",\"url\":\"classes/Data.Docs.Deposit.html#commitment\",\"classes\":\"\",\"parent\":\"Data.Docs.Deposit\"},{\"kind\":1024,\"name\":\"transactionHash\",\"url\":\"classes/Data.Docs.Deposit.html#transactionHash\",\"classes\":\"\",\"parent\":\"Data.Docs.Deposit\"},{\"kind\":1024,\"name\":\"timestamp\",\"url\":\"classes/Data.Docs.Deposit.html#timestamp\",\"classes\":\"\",\"parent\":\"Data.Docs.Deposit\"},{\"kind\":1024,\"name\":\"_id\",\"url\":\"classes/Data.Docs.Deposit.html#_id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Deposit\"},{\"kind\":1024,\"name\":\"_rev\",\"url\":\"classes/Data.Docs.Deposit.html#_rev\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Deposit\"},{\"kind\":128,\"name\":\"Withdrawal\",\"url\":\"classes/Data.Docs.Withdrawal.html\",\"classes\":\"\",\"parent\":\"Data.Docs\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Data.Docs.Withdrawal.html#constructor\",\"classes\":\"\",\"parent\":\"Data.Docs.Withdrawal\"},{\"kind\":1024,\"name\":\"blockNumber\",\"url\":\"classes/Data.Docs.Withdrawal.html#blockNumber\",\"classes\":\"\",\"parent\":\"Data.Docs.Withdrawal\"},{\"kind\":1024,\"name\":\"to\",\"url\":\"classes/Data.Docs.Withdrawal.html#to\",\"classes\":\"\",\"parent\":\"Data.Docs.Withdrawal\"},{\"kind\":1024,\"name\":\"nullifierHash\",\"url\":\"classes/Data.Docs.Withdrawal.html#nullifierHash\",\"classes\":\"\",\"parent\":\"Data.Docs.Withdrawal\"},{\"kind\":1024,\"name\":\"transactionHash\",\"url\":\"classes/Data.Docs.Withdrawal.html#transactionHash\",\"classes\":\"\",\"parent\":\"Data.Docs.Withdrawal\"},{\"kind\":1024,\"name\":\"fee\",\"url\":\"classes/Data.Docs.Withdrawal.html#fee\",\"classes\":\"\",\"parent\":\"Data.Docs.Withdrawal\"},{\"kind\":1024,\"name\":\"_id\",\"url\":\"classes/Data.Docs.Withdrawal.html#_id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Withdrawal\"},{\"kind\":1024,\"name\":\"_rev\",\"url\":\"classes/Data.Docs.Withdrawal.html#_rev\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Withdrawal\"},{\"kind\":128,\"name\":\"Note\",\"url\":\"classes/Data.Docs.Note.html\",\"classes\":\"\",\"parent\":\"Data.Docs\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Data.Docs.Note.html#constructor\",\"classes\":\"\",\"parent\":\"Data.Docs.Note\"},{\"kind\":1024,\"name\":\"network\",\"url\":\"classes/Data.Docs.Note.html#network\",\"classes\":\"\",\"parent\":\"Data.Docs.Note\"},{\"kind\":1024,\"name\":\"token\",\"url\":\"classes/Data.Docs.Note.html#token\",\"classes\":\"\",\"parent\":\"Data.Docs.Note\"},{\"kind\":1024,\"name\":\"denomination\",\"url\":\"classes/Data.Docs.Note.html#denomination\",\"classes\":\"\",\"parent\":\"Data.Docs.Note\"},{\"kind\":1024,\"name\":\"note\",\"url\":\"classes/Data.Docs.Note.html#note\",\"classes\":\"\",\"parent\":\"Data.Docs.Note\"},{\"kind\":1024,\"name\":\"_id\",\"url\":\"classes/Data.Docs.Note.html#_id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Note\"},{\"kind\":1024,\"name\":\"_rev\",\"url\":\"classes/Data.Docs.Note.html#_rev\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Note\"},{\"kind\":128,\"name\":\"Invoice\",\"url\":\"classes/Data.Docs.Invoice.html\",\"classes\":\"\",\"parent\":\"Data.Docs\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Data.Docs.Invoice.html#constructor\",\"classes\":\"\",\"parent\":\"Data.Docs.Invoice\"},{\"kind\":1024,\"name\":\"network\",\"url\":\"classes/Data.Docs.Invoice.html#network\",\"classes\":\"\",\"parent\":\"Data.Docs.Invoice\"},{\"kind\":1024,\"name\":\"token\",\"url\":\"classes/Data.Docs.Invoice.html#token\",\"classes\":\"\",\"parent\":\"Data.Docs.Invoice\"},{\"kind\":1024,\"name\":\"denomination\",\"url\":\"classes/Data.Docs.Invoice.html#denomination\",\"classes\":\"\",\"parent\":\"Data.Docs.Invoice\"},{\"kind\":1024,\"name\":\"invoice\",\"url\":\"classes/Data.Docs.Invoice.html#invoice\",\"classes\":\"\",\"parent\":\"Data.Docs.Invoice\"},{\"kind\":1024,\"name\":\"_id\",\"url\":\"classes/Data.Docs.Invoice.html#_id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Invoice\"},{\"kind\":1024,\"name\":\"_rev\",\"url\":\"classes/Data.Docs.Invoice.html#_rev\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Invoice\"},{\"kind\":128,\"name\":\"Relayer\",\"url\":\"classes/Data.Docs.Relayer.html\",\"classes\":\"\",\"parent\":\"Data.Docs\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Data.Docs.Relayer.html#constructor\",\"classes\":\"\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"address\",\"url\":\"classes/Data.Docs.Relayer.html#address\",\"classes\":\"\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"version\",\"url\":\"classes/Data.Docs.Relayer.html#version\",\"classes\":\"\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"serviceFeePercent\",\"url\":\"classes/Data.Docs.Relayer.html#serviceFeePercent\",\"classes\":\"\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"miningFeePercent\",\"url\":\"classes/Data.Docs.Relayer.html#miningFeePercent\",\"classes\":\"\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"status\",\"url\":\"classes/Data.Docs.Relayer.html#status\",\"classes\":\"\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"chainId\",\"url\":\"classes/Data.Docs.Relayer.html#chainId\",\"classes\":\"\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"prices\",\"url\":\"classes/Data.Docs.Relayer.html#prices\",\"classes\":\"\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"_id\",\"url\":\"classes/Data.Docs.Relayer.html#_id\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":1024,\"name\":\"_rev\",\"url\":\"classes/Data.Docs.Relayer.html#_rev\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Docs.Relayer\"},{\"kind\":4,\"name\":\"Cache\",\"url\":\"modules/Data.Cache.html\",\"classes\":\"\",\"parent\":\"Data\"},{\"kind\":128,\"name\":\"Base\",\"url\":\"classes/Data.Cache.Base.html\",\"classes\":\"\",\"parent\":\"Data.Cache\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Data.Cache.Base.html#constructor\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":1024,\"name\":\"_adapter\",\"url\":\"classes/Data.Cache.Base.html#_adapter\",\"classes\":\"tsd-is-private\",\"parent\":\"Data.Cache.Base\"},{\"kind\":1024,\"name\":\"_path\",\"url\":\"classes/Data.Cache.Base.html#_path\",\"classes\":\"tsd-is-private\",\"parent\":\"Data.Cache.Base\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/Data.Cache.Base.html#name\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":1024,\"name\":\"isOpen\",\"url\":\"classes/Data.Cache.Base.html#isOpen\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":1024,\"name\":\"db\",\"url\":\"classes/Data.Cache.Base.html#db\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":1024,\"name\":\"_unzip\",\"url\":\"classes/Data.Cache.Base.html#_unzip\",\"classes\":\"tsd-is-private\",\"parent\":\"Data.Cache.Base\"},{\"kind\":2048,\"name\":\"zip\",\"url\":\"classes/Data.Cache.Base.html#zip\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":2048,\"name\":\"jsonify\",\"url\":\"classes/Data.Cache.Base.html#jsonify\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/Data.Cache.Base.html#get\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":2048,\"name\":\"getRows\",\"url\":\"classes/Data.Cache.Base.html#getRows\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":2048,\"name\":\"close\",\"url\":\"classes/Data.Cache.Base.html#close\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":2048,\"name\":\"clear\",\"url\":\"classes/Data.Cache.Base.html#clear\",\"classes\":\"\",\"parent\":\"Data.Cache.Base\"},{\"kind\":128,\"name\":\"Syncable\",\"url\":\"classes/Data.Cache.Syncable.html\",\"classes\":\"\",\"parent\":\"Data.Cache\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Data.Cache.Syncable.html#constructor\",\"classes\":\"\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":1024,\"name\":\"pooler\",\"url\":\"classes/Data.Cache.Syncable.html#pooler\",\"classes\":\"\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"buildDoc\",\"url\":\"classes/Data.Cache.Syncable.html#buildDoc\",\"classes\":\"\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"getCallbacks\",\"url\":\"classes/Data.Cache.Syncable.html#getCallbacks\",\"classes\":\"\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"getErrorHandlers\",\"url\":\"classes/Data.Cache.Syncable.html#getErrorHandlers\",\"classes\":\"\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"initializePooler\",\"url\":\"classes/Data.Cache.Syncable.html#initializePooler\",\"classes\":\"\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"close\",\"url\":\"classes/Data.Cache.Syncable.html#close\",\"classes\":\"\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"clear\",\"url\":\"classes/Data.Cache.Syncable.html#clear\",\"classes\":\"\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/Data.Cache.Syncable.html#name\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":1024,\"name\":\"isOpen\",\"url\":\"classes/Data.Cache.Syncable.html#isOpen\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":1024,\"name\":\"db\",\"url\":\"classes/Data.Cache.Syncable.html#db\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"zip\",\"url\":\"classes/Data.Cache.Syncable.html#zip\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"jsonify\",\"url\":\"classes/Data.Cache.Syncable.html#jsonify\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/Data.Cache.Syncable.html#get\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":2048,\"name\":\"getRows\",\"url\":\"classes/Data.Cache.Syncable.html#getRows\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Data.Cache.Syncable\"},{\"kind\":4,\"name\":\"Network\",\"url\":\"modules/Network.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"syncErrorHandler\",\"url\":\"functions/Network.syncErrorHandler.html\",\"classes\":\"\",\"parent\":\"Network\"},{\"kind\":4194304,\"name\":\"TornadoContracts\",\"url\":\"types/Network.TornadoContracts.html\",\"classes\":\"\",\"parent\":\"Network\"},{\"kind\":4,\"name\":\"Options\",\"url\":\"modules/Network.Options.html\",\"classes\":\"\",\"parent\":\"Network\"},{\"kind\":256,\"name\":\"Sync\",\"url\":\"interfaces/Network.Options.Sync.html\",\"classes\":\"\",\"parent\":\"Network.Options\"},{\"kind\":1024,\"name\":\"startBlock\",\"url\":\"interfaces/Network.Options.Sync.html#startBlock\",\"classes\":\"\",\"parent\":\"Network.Options.Sync\"},{\"kind\":1024,\"name\":\"targetBlock\",\"url\":\"interfaces/Network.Options.Sync.html#targetBlock\",\"classes\":\"\",\"parent\":\"Network.Options.Sync\"},{\"kind\":1024,\"name\":\"blockDelta\",\"url\":\"interfaces/Network.Options.Sync.html#blockDelta\",\"classes\":\"\",\"parent\":\"Network.Options.Sync\"},{\"kind\":1024,\"name\":\"blockDivisor\",\"url\":\"interfaces/Network.Options.Sync.html#blockDivisor\",\"classes\":\"\",\"parent\":\"Network.Options.Sync\"},{\"kind\":1024,\"name\":\"concurrencyLimit\",\"url\":\"interfaces/Network.Options.Sync.html#concurrencyLimit\",\"classes\":\"\",\"parent\":\"Network.Options.Sync\"},{\"kind\":1024,\"name\":\"msTimeout\",\"url\":\"interfaces/Network.Options.Sync.html#msTimeout\",\"classes\":\"\",\"parent\":\"Network.Options.Sync\"},{\"kind\":1024,\"name\":\"listenForEvents\",\"url\":\"interfaces/Network.Options.Sync.html#listenForEvents\",\"classes\":\"\",\"parent\":\"Network.Options.Sync\"},{\"kind\":4194304,\"name\":\"Cache\",\"url\":\"types/Network.Options.Cache.html\",\"classes\":\"\",\"parent\":\"Network.Options\"},{\"kind\":128,\"name\":\"Chain\",\"url\":\"classes/Network.Chain.html\",\"classes\":\"\",\"parent\":\"Network\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Network.Chain.html#constructor\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":1024,\"name\":\"provider\",\"url\":\"classes/Network.Chain.html#provider\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":1024,\"name\":\"_emptySigner\",\"url\":\"classes/Network.Chain.html#_emptySigner\",\"classes\":\"tsd-is-private\",\"parent\":\"Network.Chain\"},{\"kind\":1024,\"name\":\"_signer\",\"url\":\"classes/Network.Chain.html#_signer\",\"classes\":\"tsd-is-private\",\"parent\":\"Network.Chain\"},{\"kind\":1024,\"name\":\"_chainId\",\"url\":\"classes/Network.Chain.html#_chainId\",\"classes\":\"tsd-is-private\",\"parent\":\"Network.Chain\"},{\"kind\":1024,\"name\":\"_symbol\",\"url\":\"classes/Network.Chain.html#_symbol\",\"classes\":\"tsd-is-private\",\"parent\":\"Network.Chain\"},{\"kind\":1024,\"name\":\"_fetched\",\"url\":\"classes/Network.Chain.html#_fetched\",\"classes\":\"tsd-is-private\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"connectSigner\",\"url\":\"classes/Network.Chain.html#connectSigner\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"fetchChainData\",\"url\":\"classes/Network.Chain.html#fetchChainData\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":1024,\"name\":\"_signerConnected\",\"url\":\"classes/Network.Chain.html#_signerConnected\",\"classes\":\"tsd-is-private\",\"parent\":\"Network.Chain\"},{\"kind\":1024,\"name\":\"_propertiesFetched\",\"url\":\"classes/Network.Chain.html#_propertiesFetched\",\"classes\":\"tsd-is-private\",\"parent\":\"Network.Chain\"},{\"kind\":262144,\"name\":\"signer\",\"url\":\"classes/Network.Chain.html#signer\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":262144,\"name\":\"id\",\"url\":\"classes/Network.Chain.html#id\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":262144,\"name\":\"symbol\",\"url\":\"classes/Network.Chain.html#symbol\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"latestBlockNum\",\"url\":\"classes/Network.Chain.html#latestBlockNum\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"getAccountBalance\",\"url\":\"classes/Network.Chain.html#getAccountBalance\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"getGasPrice\",\"url\":\"classes/Network.Chain.html#getGasPrice\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"getTokenContract\",\"url\":\"classes/Network.Chain.html#getTokenContract\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"getTokenDecimals\",\"url\":\"classes/Network.Chain.html#getTokenDecimals\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"getTokenBalance\",\"url\":\"classes/Network.Chain.html#getTokenBalance\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"populateBatchCall\",\"url\":\"classes/Network.Chain.html#populateBatchCall\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":2048,\"name\":\"batchCall\",\"url\":\"classes/Network.Chain.html#batchCall\",\"classes\":\"\",\"parent\":\"Network.Chain\"},{\"kind\":4,\"name\":\"Contracts\",\"url\":\"modules/Network.Contracts.html\",\"classes\":\"\",\"parent\":\"Network\"},{\"kind\":64,\"name\":\"getProxy\",\"url\":\"functions/Network.Contracts.getProxy.html\",\"classes\":\"\",\"parent\":\"Network.Contracts\"},{\"kind\":64,\"name\":\"getRouter\",\"url\":\"functions/Network.Contracts.getRouter.html\",\"classes\":\"\",\"parent\":\"Network.Contracts\"},{\"kind\":64,\"name\":\"getRegistry\",\"url\":\"functions/Network.Contracts.getRegistry.html\",\"classes\":\"\",\"parent\":\"Network.Contracts\"},{\"kind\":64,\"name\":\"getInstance\",\"url\":\"functions/Network.Contracts.getInstance.html\",\"classes\":\"\",\"parent\":\"Network.Contracts\"},{\"kind\":64,\"name\":\"getToken\",\"url\":\"functions/Network.Contracts.getToken.html\",\"classes\":\"\",\"parent\":\"Network.Contracts\"},{\"kind\":64,\"name\":\"getTornToken\",\"url\":\"functions/Network.Contracts.getTornToken.html\",\"classes\":\"\",\"parent\":\"Network.Contracts\"},{\"kind\":128,\"name\":\"Synchronizer\",\"url\":\"classes/Network.Synchronizer.html\",\"classes\":\"\",\"parent\":\"Network\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Network.Synchronizer.html#constructor\",\"classes\":\"\",\"parent\":\"Network.Synchronizer\"},{\"kind\":1024,\"name\":\"caches\",\"url\":\"classes/Network.Synchronizer.html#caches\",\"classes\":\"\",\"parent\":\"Network.Synchronizer\"},{\"kind\":2048,\"name\":\"sync\",\"url\":\"classes/Network.Synchronizer.html#sync\",\"classes\":\"\",\"parent\":\"Network.Synchronizer\"},{\"kind\":2048,\"name\":\"loadCache\",\"url\":\"classes/Network.Synchronizer.html#loadCache\",\"classes\":\"\",\"parent\":\"Network.Synchronizer\"},{\"kind\":2048,\"name\":\"listenForEvents\",\"url\":\"classes/Network.Synchronizer.html#listenForEvents\",\"classes\":\"\",\"parent\":\"Network.Synchronizer\"},{\"kind\":2048,\"name\":\"clearListenerByIndex\",\"url\":\"classes/Network.Synchronizer.html#clearListenerByIndex\",\"classes\":\"\",\"parent\":\"Network.Synchronizer\"},{\"kind\":2048,\"name\":\"_populateSyncOptions\",\"url\":\"classes/Network.Synchronizer.html#_populateSyncOptions\",\"classes\":\"tsd-is-protected\",\"parent\":\"Network.Synchronizer\"},{\"kind\":4,\"name\":\"Web\",\"url\":\"modules/Web.html\",\"classes\":\"\"},{\"kind\":4,\"name\":\"Options\",\"url\":\"modules/Web.Options.html\",\"classes\":\"\",\"parent\":\"Web\"},{\"kind\":256,\"name\":\"Relayer\",\"url\":\"interfaces/Web.Options.Relayer.html\",\"classes\":\"\",\"parent\":\"Web.Options\"},{\"kind\":1024,\"name\":\"url\",\"url\":\"interfaces/Web.Options.Relayer.html#url\",\"classes\":\"\",\"parent\":\"Web.Options.Relayer\"},{\"kind\":1024,\"name\":\"httpClient\",\"url\":\"interfaces/Web.Options.Relayer.html#httpClient\",\"classes\":\"\",\"parent\":\"Web.Options.Relayer\"},{\"kind\":256,\"name\":\"WithdrawalRequestResult\",\"url\":\"interfaces/Web.WithdrawalRequestResult.html\",\"classes\":\"\",\"parent\":\"Web\"},{\"kind\":1024,\"name\":\"success\",\"url\":\"interfaces/Web.WithdrawalRequestResult.html#success\",\"classes\":\"\",\"parent\":\"Web.WithdrawalRequestResult\"},{\"kind\":1024,\"name\":\"txHash\",\"url\":\"interfaces/Web.WithdrawalRequestResult.html#txHash\",\"classes\":\"\",\"parent\":\"Web.WithdrawalRequestResult\"},{\"kind\":4194304,\"name\":\"RelayerOptions\",\"url\":\"types/Web.RelayerOptions.html\",\"classes\":\"\",\"parent\":\"Web\"},{\"kind\":256,\"name\":\"ObfuscationOptions\",\"url\":\"interfaces/Web.ObfuscationOptions.html\",\"classes\":\"\",\"parent\":\"Web\"},{\"kind\":1024,\"name\":\"port\",\"url\":\"interfaces/Web.ObfuscationOptions.html#port\",\"classes\":\"\",\"parent\":\"Web.ObfuscationOptions\"},{\"kind\":1024,\"name\":\"headers\",\"url\":\"interfaces/Web.ObfuscationOptions.html#headers\",\"classes\":\"\",\"parent\":\"Web.ObfuscationOptions\"},{\"kind\":1024,\"name\":\"rv\",\"url\":\"interfaces/Web.ObfuscationOptions.html#rv\",\"classes\":\"\",\"parent\":\"Web.ObfuscationOptions\"},{\"kind\":128,\"name\":\"TorProvider\",\"url\":\"classes/Web.TorProvider.html\",\"classes\":\"\",\"parent\":\"Web\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Web.TorProvider.html#constructor\",\"classes\":\"\",\"parent\":\"Web.TorProvider\"},{\"kind\":32,\"name\":\"TorHttpClient\",\"url\":\"variables/Web.TorHttpClient.html\",\"classes\":\"\",\"parent\":\"Web\"},{\"kind\":512,\"name\":\"__type\",\"url\":\"variables/Web.TorHttpClient.html#__type\",\"classes\":\"\",\"parent\":\"Web.TorHttpClient\"},{\"kind\":32,\"name\":\"RegularHttpClient\",\"url\":\"variables/Web.RegularHttpClient.html\",\"classes\":\"\",\"parent\":\"Web\"},{\"kind\":512,\"name\":\"__type\",\"url\":\"variables/Web.RegularHttpClient.html#__type\",\"classes\":\"\",\"parent\":\"Web.RegularHttpClient\"},{\"kind\":128,\"name\":\"Relayer\",\"url\":\"classes/Web.Relayer.html\",\"classes\":\"\",\"parent\":\"Web\"},{\"kind\":2048,\"name\":\"fromCache\",\"url\":\"classes/Web.Relayer.html#fromCache\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Web.Relayer.html#constructor\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"url\",\"url\":\"classes/Web.Relayer.html#url\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"httpClient\",\"url\":\"classes/Web.Relayer.html#httpClient\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_fetched\",\"url\":\"classes/Web.Relayer.html#_fetched\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_address\",\"url\":\"classes/Web.Relayer.html#_address\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_version\",\"url\":\"classes/Web.Relayer.html#_version\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_serviceFee\",\"url\":\"classes/Web.Relayer.html#_serviceFee\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_miningFee\",\"url\":\"classes/Web.Relayer.html#_miningFee\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_status\",\"url\":\"classes/Web.Relayer.html#_status\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_chainId\",\"url\":\"classes/Web.Relayer.html#_chainId\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_prices\",\"url\":\"classes/Web.Relayer.html#_prices\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":2048,\"name\":\"fetchProperties\",\"url\":\"classes/Web.Relayer.html#fetchProperties\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_propertiesFetched\",\"url\":\"classes/Web.Relayer.html#_propertiesFetched\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":262144,\"name\":\"address\",\"url\":\"classes/Web.Relayer.html#address\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":262144,\"name\":\"version\",\"url\":\"classes/Web.Relayer.html#version\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":262144,\"name\":\"serviceFeePercent\",\"url\":\"classes/Web.Relayer.html#serviceFeePercent\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":262144,\"name\":\"miningFeePercent\",\"url\":\"classes/Web.Relayer.html#miningFeePercent\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":262144,\"name\":\"status\",\"url\":\"classes/Web.Relayer.html#status\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":262144,\"name\":\"chainId\",\"url\":\"classes/Web.Relayer.html#chainId\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":262144,\"name\":\"prices\",\"url\":\"classes/Web.Relayer.html#prices\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":262144,\"name\":\"properties\",\"url\":\"classes/Web.Relayer.html#properties\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":2048,\"name\":\"getETHPurchasePrice\",\"url\":\"classes/Web.Relayer.html#getETHPurchasePrice\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":2048,\"name\":\"handleWithdrawal\",\"url\":\"classes/Web.Relayer.html#handleWithdrawal\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":1024,\"name\":\"_handleHTTPError\",\"url\":\"classes/Web.Relayer.html#_handleHTTPError\",\"classes\":\"tsd-is-private\",\"parent\":\"Web.Relayer\"},{\"kind\":2048,\"name\":\"remember\",\"url\":\"classes/Web.Relayer.html#remember\",\"classes\":\"\",\"parent\":\"Web.Relayer\"},{\"kind\":4,\"name\":\"Utils\",\"url\":\"modules/Utils.html\",\"classes\":\"\"},{\"kind\":4,\"name\":\"ErrorUtils\",\"url\":\"modules/Utils.ErrorUtils.html\",\"classes\":\"\",\"parent\":\"Utils\"},{\"kind\":64,\"name\":\"ensureError\",\"url\":\"functions/Utils.ErrorUtils.ensureError.html\",\"classes\":\"\",\"parent\":\"Utils.ErrorUtils\"},{\"kind\":64,\"name\":\"getError\",\"url\":\"functions/Utils.ErrorUtils.getError.html\",\"classes\":\"\",\"parent\":\"Utils.ErrorUtils\"},{\"kind\":4,\"name\":\"AsyncUtils\",\"url\":\"modules/Utils.AsyncUtils.html\",\"classes\":\"\",\"parent\":\"Utils\"},{\"kind\":64,\"name\":\"timeout\",\"url\":\"functions/Utils.AsyncUtils.timeout.html\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils\"},{\"kind\":4194304,\"name\":\"Callback\",\"url\":\"types/Utils.AsyncUtils.Callback.html\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/Utils.AsyncUtils.Callback.html#__type\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.Callback\"},{\"kind\":4194304,\"name\":\"ErrorHandler\",\"url\":\"types/Utils.AsyncUtils.ErrorHandler.html\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/Utils.AsyncUtils.ErrorHandler.html#__type\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.ErrorHandler\"},{\"kind\":128,\"name\":\"PromisePooler\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#constructor\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"concurrencyLimit\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#concurrencyLimit\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"_totalAdded\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#_totalAdded\",\"classes\":\"tsd-is-private\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"_results\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#_results\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"_callbacks\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#_callbacks\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"_errorHandlers\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#_errorHandlers\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"_promises\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#_promises\",\"classes\":\"tsd-is-private\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":262144,\"name\":\"pending\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#pending\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":262144,\"name\":\"totalAdded\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#totalAdded\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":2048,\"name\":\"poolMany\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#poolMany\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":2048,\"name\":\"pool\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#pool\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":2048,\"name\":\"all\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#all\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":2048,\"name\":\"race\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#race\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":2048,\"name\":\"reset\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#reset\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"_pool\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#_pool\",\"classes\":\"tsd-is-private\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"_getPromiseIndex\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#_getPromiseIndex\",\"classes\":\"tsd-is-private\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":1024,\"name\":\"_waitIfFull\",\"url\":\"classes/Utils.AsyncUtils.PromisePooler.html#_waitIfFull\",\"classes\":\"tsd-is-private\",\"parent\":\"Utils.AsyncUtils.PromisePooler\"},{\"kind\":128,\"name\":\"SimpleMutex\",\"url\":\"classes/Utils.AsyncUtils.SimpleMutex.html\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Utils.AsyncUtils.SimpleMutex.html#constructor\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.SimpleMutex\"},{\"kind\":1024,\"name\":\"_mutexes\",\"url\":\"classes/Utils.AsyncUtils.SimpleMutex.html#_mutexes\",\"classes\":\"tsd-is-private\",\"parent\":\"Utils.AsyncUtils.SimpleMutex\"},{\"kind\":2048,\"name\":\"acquire\",\"url\":\"classes/Utils.AsyncUtils.SimpleMutex.html#acquire\",\"classes\":\"\",\"parent\":\"Utils.AsyncUtils.SimpleMutex\"},{\"kind\":4,\"name\":\"NumberUtils\",\"url\":\"modules/Utils.NumberUtils.html\",\"classes\":\"\",\"parent\":\"Utils\"},{\"kind\":64,\"name\":\"randomBigInteger\",\"url\":\"functions/Utils.NumberUtils.randomBigInteger.html\",\"classes\":\"\",\"parent\":\"Utils.NumberUtils\"},{\"kind\":64,\"name\":\"getRandomFromRange\",\"url\":\"functions/Utils.NumberUtils.getRandomFromRange.html\",\"classes\":\"\",\"parent\":\"Utils.NumberUtils\"},{\"kind\":4,\"name\":\"HexUtils\",\"url\":\"modules/Utils.HexUtils.html\",\"classes\":\"\",\"parent\":\"Utils\"},{\"kind\":64,\"name\":\"bufferToHex\",\"url\":\"functions/Utils.HexUtils.bufferToHex.html\",\"classes\":\"\",\"parent\":\"Utils.HexUtils\"},{\"kind\":64,\"name\":\"numberToHex\",\"url\":\"functions/Utils.HexUtils.numberToHex.html\",\"classes\":\"\",\"parent\":\"Utils.HexUtils\"},{\"kind\":64,\"name\":\"bigIntToHex\",\"url\":\"functions/Utils.HexUtils.bigIntToHex.html\",\"classes\":\"\",\"parent\":\"Utils.HexUtils\"},{\"kind\":64,\"name\":\"prepareAddress\",\"url\":\"functions/Utils.HexUtils.prepareAddress.html\",\"classes\":\"\",\"parent\":\"Utils.HexUtils\"},{\"kind\":4,\"name\":\"ObjectUtils\",\"url\":\"modules/Utils.ObjectUtils.html\",\"classes\":\"\",\"parent\":\"Utils\"},{\"kind\":64,\"name\":\"populate\",\"url\":\"functions/Utils.ObjectUtils.populate.html\",\"classes\":\"\",\"parent\":\"Utils.ObjectUtils\"},{\"kind\":64,\"name\":\"swap\",\"url\":\"functions/Utils.ObjectUtils.swap.html\",\"classes\":\"\",\"parent\":\"Utils.ObjectUtils\"},{\"kind\":64,\"name\":\"exists\",\"url\":\"functions/Utils.ObjectUtils.exists.html\",\"classes\":\"\",\"parent\":\"Utils.ObjectUtils\"},{\"kind\":4,\"name\":\"Options\",\"url\":\"modules/Options.html\",\"classes\":\"\"},{\"kind\":4,\"name\":\"Core\",\"url\":\"modules/Options.Core.html\",\"classes\":\"\",\"parent\":\"Options\"},{\"kind\":256,\"name\":\"Deposit\",\"url\":\"interfaces/Options.Core.Deposit.html\",\"classes\":\"\",\"parent\":\"Options.Core\"},{\"kind\":1024,\"name\":\"depositsPerInstance\",\"url\":\"interfaces/Options.Core.Deposit.html#depositsPerInstance\",\"classes\":\"\",\"parent\":\"Options.Core.Deposit\"},{\"kind\":1024,\"name\":\"callInstanceDirectly\",\"url\":\"interfaces/Options.Core.Deposit.html#callInstanceDirectly\",\"classes\":\"\",\"parent\":\"Options.Core.Deposit\"},{\"kind\":1024,\"name\":\"doNotPopulate\",\"url\":\"interfaces/Options.Core.Deposit.html#doNotPopulate\",\"classes\":\"\",\"parent\":\"Options.Core.Deposit\"},{\"kind\":4194304,\"name\":\"Invoice\",\"url\":\"types/Options.Core.Invoice.html\",\"classes\":\"\",\"parent\":\"Options.Core\"},{\"kind\":256,\"name\":\"BuildDepositProof\",\"url\":\"interfaces/Options.Core.BuildDepositProof.html\",\"classes\":\"\",\"parent\":\"Options.Core\"},{\"kind\":1024,\"name\":\"gasPrice\",\"url\":\"interfaces/Options.Core.BuildDepositProof.html#gasPrice\",\"classes\":\"\",\"parent\":\"Options.Core.BuildDepositProof\"},{\"kind\":1024,\"name\":\"gasPriceCushion\",\"url\":\"interfaces/Options.Core.BuildDepositProof.html#gasPriceCushion\",\"classes\":\"\",\"parent\":\"Options.Core.BuildDepositProof\"},{\"kind\":1024,\"name\":\"tokenDecimals\",\"url\":\"interfaces/Options.Core.BuildDepositProof.html#tokenDecimals\",\"classes\":\"\",\"parent\":\"Options.Core.BuildDepositProof\"},{\"kind\":1024,\"name\":\"ethPurchaseAmounts\",\"url\":\"interfaces/Options.Core.BuildDepositProof.html#ethPurchaseAmounts\",\"classes\":\"\",\"parent\":\"Options.Core.BuildDepositProof\"},{\"kind\":1024,\"name\":\"checkNotesSpent\",\"url\":\"interfaces/Options.Core.BuildDepositProof.html#checkNotesSpent\",\"classes\":\"\",\"parent\":\"Options.Core.BuildDepositProof\"},{\"kind\":1024,\"name\":\"checkKnownRoot\",\"url\":\"interfaces/Options.Core.BuildDepositProof.html#checkKnownRoot\",\"classes\":\"\",\"parent\":\"Options.Core.BuildDepositProof\"},{\"kind\":1024,\"name\":\"merkleTreeHeight\",\"url\":\"interfaces/Options.Core.BuildDepositProof.html#merkleTreeHeight\",\"classes\":\"\",\"parent\":\"Options.Core.BuildDepositProof\"},{\"kind\":4194304,\"name\":\"Sync\",\"url\":\"types/Options.Sync.html\",\"classes\":\"\",\"parent\":\"Options\"},{\"kind\":4194304,\"name\":\"Cache\",\"url\":\"types/Options.Cache.html\",\"classes\":\"\",\"parent\":\"Options\"},{\"kind\":4,\"name\":\"Transactions\",\"url\":\"modules/Transactions.html\",\"classes\":\"\"},{\"kind\":256,\"name\":\"Deposit\",\"url\":\"interfaces/Transactions.Deposit.html\",\"classes\":\"\",\"parent\":\"Transactions\"},{\"kind\":1024,\"name\":\"request\",\"url\":\"interfaces/Transactions.Deposit.html#request\",\"classes\":\"\",\"parent\":\"Transactions.Deposit\"},{\"kind\":1024,\"name\":\"invoice\",\"url\":\"interfaces/Transactions.Deposit.html#invoice\",\"classes\":\"\",\"parent\":\"Transactions.Deposit\"},{\"kind\":1024,\"name\":\"note\",\"url\":\"interfaces/Transactions.Deposit.html#note\",\"classes\":\"\",\"parent\":\"Transactions.Deposit\"},{\"kind\":4194304,\"name\":\"Invoice\",\"url\":\"types/Transactions.Invoice.html\",\"classes\":\"\",\"parent\":\"Transactions\"},{\"kind\":128,\"name\":\"DepositCache\",\"url\":\"classes/DepositCache.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/DepositCache.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"buildDoc\",\"url\":\"classes/DepositCache.html#buildDoc\",\"classes\":\"\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"getErrorHandlers\",\"url\":\"classes/DepositCache.html#getErrorHandlers\",\"classes\":\"\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"getCallbacks\",\"url\":\"classes/DepositCache.html#getCallbacks\",\"classes\":\"\",\"parent\":\"DepositCache\"},{\"kind\":1024,\"name\":\"pooler\",\"url\":\"classes/DepositCache.html#pooler\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"initializePooler\",\"url\":\"classes/DepositCache.html#initializePooler\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"close\",\"url\":\"classes/DepositCache.html#close\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"clear\",\"url\":\"classes/DepositCache.html#clear\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/DepositCache.html#name\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":1024,\"name\":\"isOpen\",\"url\":\"classes/DepositCache.html#isOpen\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":1024,\"name\":\"db\",\"url\":\"classes/DepositCache.html#db\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"zip\",\"url\":\"classes/DepositCache.html#zip\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"jsonify\",\"url\":\"classes/DepositCache.html#jsonify\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/DepositCache.html#get\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":2048,\"name\":\"getRows\",\"url\":\"classes/DepositCache.html#getRows\",\"classes\":\"tsd-is-inherited\",\"parent\":\"DepositCache\"},{\"kind\":128,\"name\":\"WithdrawalCache\",\"url\":\"classes/WithdrawalCache.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WithdrawalCache.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"buildDoc\",\"url\":\"classes/WithdrawalCache.html#buildDoc\",\"classes\":\"\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"getErrorHandlers\",\"url\":\"classes/WithdrawalCache.html#getErrorHandlers\",\"classes\":\"\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"getCallbacks\",\"url\":\"classes/WithdrawalCache.html#getCallbacks\",\"classes\":\"\",\"parent\":\"WithdrawalCache\"},{\"kind\":1024,\"name\":\"pooler\",\"url\":\"classes/WithdrawalCache.html#pooler\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"initializePooler\",\"url\":\"classes/WithdrawalCache.html#initializePooler\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"close\",\"url\":\"classes/WithdrawalCache.html#close\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"clear\",\"url\":\"classes/WithdrawalCache.html#clear\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/WithdrawalCache.html#name\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":1024,\"name\":\"isOpen\",\"url\":\"classes/WithdrawalCache.html#isOpen\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":1024,\"name\":\"db\",\"url\":\"classes/WithdrawalCache.html#db\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"zip\",\"url\":\"classes/WithdrawalCache.html#zip\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"jsonify\",\"url\":\"classes/WithdrawalCache.html#jsonify\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/WithdrawalCache.html#get\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":2048,\"name\":\"getRows\",\"url\":\"classes/WithdrawalCache.html#getRows\",\"classes\":\"tsd-is-inherited\",\"parent\":\"WithdrawalCache\"},{\"kind\":128,\"name\":\"Core\",\"url\":\"classes/Core.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Core.html#constructor\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_mutex\",\"url\":\"classes/Core.html#_mutex\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_chain\",\"url\":\"classes/Core.html#_chain\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_notes\",\"url\":\"classes/Core.html#_notes\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_invoices\",\"url\":\"classes/Core.html#_invoices\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":262144,\"name\":\"chain\",\"url\":\"classes/Core.html#chain\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_checkProvider\",\"url\":\"classes/Core.html#_checkProvider\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"connect\",\"url\":\"classes/Core.html#connect\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"getInstances\",\"url\":\"classes/Core.html#getInstances\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"getInstance\",\"url\":\"classes/Core.html#getInstance\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"getRouter\",\"url\":\"classes/Core.html#getRouter\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"createDepositProof\",\"url\":\"classes/Core.html#createDepositProof\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"createDepositProofs\",\"url\":\"classes/Core.html#createDepositProofs\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_calcWithdrawalFee\",\"url\":\"classes/Core.html#_calcWithdrawalFee\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_findLeavesAndIndices\",\"url\":\"classes/Core.html#_findLeavesAndIndices\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"loadNotes\",\"url\":\"classes/Core.html#loadNotes\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"parseNotes\",\"url\":\"classes/Core.html#parseNotes\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"parseNote\",\"url\":\"classes/Core.html#parseNote\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"clearListener\",\"url\":\"classes/Core.html#clearListener\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"clearListeners\",\"url\":\"classes/Core.html#clearListeners\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"listenForDeposits\",\"url\":\"classes/Core.html#listenForDeposits\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"listenForWithdrawals\",\"url\":\"classes/Core.html#listenForWithdrawals\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"listenForInstanceEvents\",\"url\":\"classes/Core.html#listenForInstanceEvents\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_instanceEventToFilter\",\"url\":\"classes/Core.html#_instanceEventToFilter\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_resolveInstanceEvent\",\"url\":\"classes/Core.html#_resolveInstanceEvent\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_resolveInstance\",\"url\":\"classes/Core.html#_resolveInstance\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"createDepositTransaction\",\"url\":\"classes/Core.html#createDepositTransaction\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"createDepositTransactions\",\"url\":\"classes/Core.html#createDepositTransactions\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"syncDeposits\",\"url\":\"classes/Core.html#syncDeposits\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"syncWithdrawals\",\"url\":\"classes/Core.html#syncWithdrawals\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"_populateSyncOptions\",\"url\":\"classes/Core.html#_populateSyncOptions\",\"classes\":\"tsd-is-protected\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"backupNote\",\"url\":\"classes/Core.html#backupNote\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"backupInvoice\",\"url\":\"classes/Core.html#backupInvoice\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"backupNotes\",\"url\":\"classes/Core.html#backupNotes\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"backupInvoices\",\"url\":\"classes/Core.html#backupInvoices\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"_backupDepositData\",\"url\":\"classes/Core.html#_backupDepositData\",\"classes\":\"tsd-is-private\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"exportCacheZip\",\"url\":\"classes/Core.html#exportCacheZip\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"exportCacheJson\",\"url\":\"classes/Core.html#exportCacheJson\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"loadNotesCache\",\"url\":\"classes/Core.html#loadNotesCache\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"loadInvoicesCache\",\"url\":\"classes/Core.html#loadInvoicesCache\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"loadDepositCache\",\"url\":\"classes/Core.html#loadDepositCache\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"loadWithdrawalCache\",\"url\":\"classes/Core.html#loadWithdrawalCache\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"loadCache\",\"url\":\"classes/Core.html#loadCache\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"loadInstance\",\"url\":\"classes/Core.html#loadInstance\",\"classes\":\"\",\"parent\":\"Core\"},{\"kind\":1024,\"name\":\"caches\",\"url\":\"classes/Core.html#caches\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"sync\",\"url\":\"classes/Core.html#sync\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"listenForEvents\",\"url\":\"classes/Core.html#listenForEvents\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Core\"},{\"kind\":2048,\"name\":\"clearListenerByIndex\",\"url\":\"classes/Core.html#clearListenerByIndex\",\"classes\":\"tsd-is-inherited\",\"parent\":\"Core\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,57.93]],[\"comment/0\",[]],[\"name/1\",[1,57.93]],[\"comment/1\",[]],[\"name/2\",[2,57.93]],[\"comment/2\",[]],[\"name/3\",[3,52.822]],[\"comment/3\",[]],[\"name/4\",[4,49.457]],[\"comment/4\",[]],[\"name/5\",[5,49.457]],[\"comment/5\",[]],[\"name/6\",[6,49.457]],[\"comment/6\",[]],[\"name/7\",[7,57.93]],[\"comment/7\",[]],[\"name/8\",[8,52.822]],[\"comment/8\",[]],[\"name/9\",[9,57.93]],[\"comment/9\",[]],[\"name/10\",[10,52.822]],[\"comment/10\",[]],[\"name/11\",[11,52.822]],[\"comment/11\",[]],[\"name/12\",[12,52.822]],[\"comment/12\",[]],[\"name/13\",[13,52.822]],[\"comment/13\",[]],[\"name/14\",[14,57.93]],[\"comment/14\",[]],[\"name/15\",[15,40.584]],[\"comment/15\",[]],[\"name/16\",[16,57.93]],[\"comment/16\",[]],[\"name/17\",[17,57.93]],[\"comment/17\",[]],[\"name/18\",[18,57.93]],[\"comment/18\",[]],[\"name/19\",[19,57.93]],[\"comment/19\",[]],[\"name/20\",[20,57.93]],[\"comment/20\",[]],[\"name/21\",[21,57.93]],[\"comment/21\",[]],[\"name/22\",[12,52.822]],[\"comment/22\",[]],[\"name/23\",[22,52.822]],[\"comment/23\",[]],[\"name/24\",[23,57.93]],[\"comment/24\",[]],[\"name/25\",[3,52.822]],[\"comment/25\",[]],[\"name/26\",[24,57.93]],[\"comment/26\",[]],[\"name/27\",[4,49.457]],[\"comment/27\",[]],[\"name/28\",[5,49.457]],[\"comment/28\",[]],[\"name/29\",[6,49.457]],[\"comment/29\",[]],[\"name/30\",[25,52.822]],[\"comment/30\",[]],[\"name/31\",[26,57.93]],[\"comment/31\",[]],[\"name/32\",[27,57.93]],[\"comment/32\",[]],[\"name/33\",[22,52.822]],[\"comment/33\",[]],[\"name/34\",[28,57.93]],[\"comment/34\",[]],[\"name/35\",[15,40.584]],[\"comment/35\",[]],[\"name/36\",[13,52.822]],[\"comment/36\",[]],[\"name/37\",[29,57.93]],[\"comment/37\",[]],[\"name/38\",[30,52.822]],[\"comment/38\",[]],[\"name/39\",[11,52.822]],[\"comment/39\",[]],[\"name/40\",[31,57.93]],[\"comment/40\",[]],[\"name/41\",[32,57.93]],[\"comment/41\",[]],[\"name/42\",[33,52.822]],[\"comment/42\",[]],[\"name/43\",[34,57.93]],[\"comment/43\",[]],[\"name/44\",[35,57.93]],[\"comment/44\",[]],[\"name/45\",[15,40.584]],[\"comment/45\",[]],[\"name/46\",[5,49.457]],[\"comment/46\",[]],[\"name/47\",[6,49.457]],[\"comment/47\",[]],[\"name/48\",[36,57.93]],[\"comment/48\",[]],[\"name/49\",[37,57.93]],[\"comment/49\",[]],[\"name/50\",[38,57.93]],[\"comment/50\",[]],[\"name/51\",[39,57.93]],[\"comment/51\",[]],[\"name/52\",[40,57.93]],[\"comment/52\",[]],[\"name/53\",[41,57.93]],[\"comment/53\",[]],[\"name/54\",[42,57.93]],[\"comment/54\",[]],[\"name/55\",[43,57.93]],[\"comment/55\",[]],[\"name/56\",[44,57.93]],[\"comment/56\",[]],[\"name/57\",[45,57.93]],[\"comment/57\",[]],[\"name/58\",[46,57.93]],[\"comment/58\",[]],[\"name/59\",[47,57.93]],[\"comment/59\",[]],[\"name/60\",[48,52.822]],[\"comment/60\",[]],[\"name/61\",[4,49.457]],[\"comment/61\",[]],[\"name/62\",[25,52.822]],[\"comment/62\",[]],[\"name/63\",[49,57.93]],[\"comment/63\",[]],[\"name/64\",[50,57.93]],[\"comment/64\",[]],[\"name/65\",[51,57.93]],[\"comment/65\",[]],[\"name/66\",[52,41.836]],[\"comment/66\",[]],[\"name/67\",[53,49.457]],[\"comment/67\",[]],[\"name/68\",[54,49.457]],[\"comment/68\",[]],[\"name/69\",[55,44.937]],[\"comment/69\",[]],[\"name/70\",[56,52.822]],[\"comment/70\",[]],[\"name/71\",[57,43.267]],[\"comment/71\",[]],[\"name/72\",[58,57.93]],[\"comment/72\",[]],[\"name/73\",[59,57.93]],[\"comment/73\",[]],[\"name/74\",[52,41.836]],[\"comment/74\",[]],[\"name/75\",[53,49.457]],[\"comment/75\",[]],[\"name/76\",[54,49.457]],[\"comment/76\",[]],[\"name/77\",[55,44.937]],[\"comment/77\",[]],[\"name/78\",[56,52.822]],[\"comment/78\",[]],[\"name/79\",[57,43.267]],[\"comment/79\",[]],[\"name/80\",[60,57.93]],[\"comment/80\",[]],[\"name/81\",[52,41.836]],[\"comment/81\",[]],[\"name/82\",[54,49.457]],[\"comment/82\",[]],[\"name/83\",[57,43.267]],[\"comment/83\",[]],[\"name/84\",[61,57.93]],[\"comment/84\",[]],[\"name/85\",[62,57.93]],[\"comment/85\",[]],[\"name/86\",[52,41.836]],[\"comment/86\",[]],[\"name/87\",[63,49.457]],[\"comment/87\",[]],[\"name/88\",[55,44.937]],[\"comment/88\",[]],[\"name/89\",[64,57.93]],[\"comment/89\",[]],[\"name/90\",[57,43.267]],[\"comment/90\",[]],[\"name/91\",[65,49.457]],[\"comment/91\",[]],[\"name/92\",[66,49.457]],[\"comment/92\",[]],[\"name/93\",[67,49.457]],[\"comment/93\",[]],[\"name/94\",[68,49.457]],[\"comment/94\",[]],[\"name/95\",[69,49.457]],[\"comment/95\",[]],[\"name/96\",[70,49.457]],[\"comment/96\",[]],[\"name/97\",[71,46.944]],[\"comment/97\",[]],[\"name/98\",[72,46.944]],[\"comment/98\",[]],[\"name/99\",[73,57.93]],[\"comment/99\",[]],[\"name/100\",[74,57.93]],[\"comment/100\",[]],[\"name/101\",[75,57.93]],[\"comment/101\",[]],[\"name/102\",[76,57.93]],[\"comment/102\",[]],[\"name/103\",[77,57.93]],[\"comment/103\",[]],[\"name/104\",[78,57.93]],[\"comment/104\",[]],[\"name/105\",[79,57.93]],[\"comment/105\",[]],[\"name/106\",[80,57.93]],[\"comment/106\",[]],[\"name/107\",[81,57.93]],[\"comment/107\",[]],[\"name/108\",[82,57.93]],[\"comment/108\",[]],[\"name/109\",[15,40.584]],[\"comment/109\",[]],[\"name/110\",[83,57.93]],[\"comment/110\",[]],[\"name/111\",[84,57.93]],[\"comment/111\",[]],[\"name/112\",[85,57.93]],[\"comment/112\",[]],[\"name/113\",[86,57.93]],[\"comment/113\",[]],[\"name/114\",[87,57.93]],[\"comment/114\",[]],[\"name/115\",[88,57.93]],[\"comment/115\",[]],[\"name/116\",[89,57.93]],[\"comment/116\",[]],[\"name/117\",[90,57.93]],[\"comment/117\",[]],[\"name/118\",[91,57.93]],[\"comment/118\",[]],[\"name/119\",[92,57.93]],[\"comment/119\",[]],[\"name/120\",[93,57.93]],[\"comment/120\",[]],[\"name/121\",[94,57.93]],[\"comment/121\",[]],[\"name/122\",[95,57.93]],[\"comment/122\",[]],[\"name/123\",[96,57.93]],[\"comment/123\",[]],[\"name/124\",[97,52.822]],[\"comment/124\",[]],[\"name/125\",[98,57.93]],[\"comment/125\",[]],[\"name/126\",[99,57.93]],[\"comment/126\",[]],[\"name/127\",[100,57.93]],[\"comment/127\",[]],[\"name/128\",[101,57.93]],[\"comment/128\",[]],[\"name/129\",[102,57.93]],[\"comment/129\",[]],[\"name/130\",[103,57.93]],[\"comment/130\",[]],[\"name/131\",[104,57.93]],[\"comment/131\",[]],[\"name/132\",[105,57.93]],[\"comment/132\",[]],[\"name/133\",[106,57.93]],[\"comment/133\",[]],[\"name/134\",[107,57.93]],[\"comment/134\",[]],[\"name/135\",[108,57.93]],[\"comment/135\",[]],[\"name/136\",[109,57.93]],[\"comment/136\",[]],[\"name/137\",[110,57.93]],[\"comment/137\",[]],[\"name/138\",[111,57.93]],[\"comment/138\",[]],[\"name/139\",[112,57.93]],[\"comment/139\",[]],[\"name/140\",[113,57.93]],[\"comment/140\",[]],[\"name/141\",[114,57.93]],[\"comment/141\",[]],[\"name/142\",[115,57.93]],[\"comment/142\",[]],[\"name/143\",[116,57.93]],[\"comment/143\",[]],[\"name/144\",[117,57.93]],[\"comment/144\",[]],[\"name/145\",[118,57.93]],[\"comment/145\",[]],[\"name/146\",[119,57.93]],[\"comment/146\",[]],[\"name/147\",[120,57.93]],[\"comment/147\",[]],[\"name/148\",[121,57.93]],[\"comment/148\",[]],[\"name/149\",[122,57.93]],[\"comment/149\",[]],[\"name/150\",[123,57.93]],[\"comment/150\",[]],[\"name/151\",[124,57.93]],[\"comment/151\",[]],[\"name/152\",[125,57.93]],[\"comment/152\",[]],[\"name/153\",[126,57.93]],[\"comment/153\",[]],[\"name/154\",[127,57.93]],[\"comment/154\",[]],[\"name/155\",[128,57.93]],[\"comment/155\",[]],[\"name/156\",[129,52.822]],[\"comment/156\",[]],[\"name/157\",[130,57.93]],[\"comment/157\",[]],[\"name/158\",[131,57.93]],[\"comment/158\",[]],[\"name/159\",[132,57.93]],[\"comment/159\",[]],[\"name/160\",[133,57.93]],[\"comment/160\",[]],[\"name/161\",[134,57.93]],[\"comment/161\",[]],[\"name/162\",[135,57.93]],[\"comment/162\",[]],[\"name/163\",[136,57.93]],[\"comment/163\",[]],[\"name/164\",[137,57.93]],[\"comment/164\",[]],[\"name/165\",[138,57.93]],[\"comment/165\",[]],[\"name/166\",[139,52.822]],[\"comment/166\",[]],[\"name/167\",[140,33.363]],[\"comment/167\",[]],[\"name/168\",[141,43.267]],[\"comment/168\",[]],[\"name/169\",[142,43.267]],[\"comment/169\",[]],[\"name/170\",[143,49.457]],[\"comment/170\",[]],[\"name/171\",[140,33.363]],[\"comment/171\",[]],[\"name/172\",[144,52.822]],[\"comment/172\",[]],[\"name/173\",[30,52.822]],[\"comment/173\",[]],[\"name/174\",[8,52.822]],[\"comment/174\",[]],[\"name/175\",[145,52.822]],[\"comment/175\",[]],[\"name/176\",[146,57.93]],[\"comment/176\",[]],[\"name/177\",[141,43.267]],[\"comment/177\",[]],[\"name/178\",[142,43.267]],[\"comment/178\",[]],[\"name/179\",[147,57.93]],[\"comment/179\",[]],[\"name/180\",[140,33.363]],[\"comment/180\",[]],[\"name/181\",[144,52.822]],[\"comment/181\",[]],[\"name/182\",[148,57.93]],[\"comment/182\",[]],[\"name/183\",[10,52.822]],[\"comment/183\",[]],[\"name/184\",[145,52.822]],[\"comment/184\",[]],[\"name/185\",[33,52.822]],[\"comment/185\",[]],[\"name/186\",[141,43.267]],[\"comment/186\",[]],[\"name/187\",[142,43.267]],[\"comment/187\",[]],[\"name/188\",[149,49.457]],[\"comment/188\",[]],[\"name/189\",[140,33.363]],[\"comment/189\",[]],[\"name/190\",[52,41.836]],[\"comment/190\",[]],[\"name/191\",[63,49.457]],[\"comment/191\",[]],[\"name/192\",[55,44.937]],[\"comment/192\",[]],[\"name/193\",[149,49.457]],[\"comment/193\",[]],[\"name/194\",[141,43.267]],[\"comment/194\",[]],[\"name/195\",[142,43.267]],[\"comment/195\",[]],[\"name/196\",[150,44.937]],[\"comment/196\",[]],[\"name/197\",[140,33.363]],[\"comment/197\",[]],[\"name/198\",[52,41.836]],[\"comment/198\",[]],[\"name/199\",[63,49.457]],[\"comment/199\",[]],[\"name/200\",[55,44.937]],[\"comment/200\",[]],[\"name/201\",[150,44.937]],[\"comment/201\",[]],[\"name/202\",[141,43.267]],[\"comment/202\",[]],[\"name/203\",[142,43.267]],[\"comment/203\",[]],[\"name/204\",[151,49.457]],[\"comment/204\",[]],[\"name/205\",[140,33.363]],[\"comment/205\",[]],[\"name/206\",[57,43.267]],[\"comment/206\",[]],[\"name/207\",[65,49.457]],[\"comment/207\",[]],[\"name/208\",[66,49.457]],[\"comment/208\",[]],[\"name/209\",[67,49.457]],[\"comment/209\",[]],[\"name/210\",[68,49.457]],[\"comment/210\",[]],[\"name/211\",[69,49.457]],[\"comment/211\",[]],[\"name/212\",[70,49.457]],[\"comment/212\",[]],[\"name/213\",[141,43.267]],[\"comment/213\",[]],[\"name/214\",[142,43.267]],[\"comment/214\",[]],[\"name/215\",[72,46.944]],[\"comment/215\",[]],[\"name/216\",[139,52.822]],[\"comment/216\",[]],[\"name/217\",[140,33.363]],[\"comment/217\",[]],[\"name/218\",[152,57.93]],[\"comment/218\",[]],[\"name/219\",[153,57.93]],[\"comment/219\",[]],[\"name/220\",[154,46.944]],[\"comment/220\",[]],[\"name/221\",[155,46.944]],[\"comment/221\",[]],[\"name/222\",[156,46.944]],[\"comment/222\",[]],[\"name/223\",[157,57.93]],[\"comment/223\",[]],[\"name/224\",[158,46.944]],[\"comment/224\",[]],[\"name/225\",[159,46.944]],[\"comment/225\",[]],[\"name/226\",[160,46.944]],[\"comment/226\",[]],[\"name/227\",[161,46.944]],[\"comment/227\",[]],[\"name/228\",[162,46.944]],[\"comment/228\",[]],[\"name/229\",[163,46.944]],[\"comment/229\",[]],[\"name/230\",[164,57.93]],[\"comment/230\",[]],[\"name/231\",[140,33.363]],[\"comment/231\",[]],[\"name/232\",[165,49.457]],[\"comment/232\",[]],[\"name/233\",[166,49.457]],[\"comment/233\",[]],[\"name/234\",[167,49.457]],[\"comment/234\",[]],[\"name/235\",[168,49.457]],[\"comment/235\",[]],[\"name/236\",[169,49.457]],[\"comment/236\",[]],[\"name/237\",[162,46.944]],[\"comment/237\",[]],[\"name/238\",[163,46.944]],[\"comment/238\",[]],[\"name/239\",[154,46.944]],[\"comment/239\",[]],[\"name/240\",[155,46.944]],[\"comment/240\",[]],[\"name/241\",[156,46.944]],[\"comment/241\",[]],[\"name/242\",[158,46.944]],[\"comment/242\",[]],[\"name/243\",[159,46.944]],[\"comment/243\",[]],[\"name/244\",[160,46.944]],[\"comment/244\",[]],[\"name/245\",[161,46.944]],[\"comment/245\",[]],[\"name/246\",[52,41.836]],[\"comment/246\",[]],[\"name/247\",[170,57.93]],[\"comment/247\",[]],[\"name/248\",[171,57.93]],[\"comment/248\",[]],[\"name/249\",[71,46.944]],[\"comment/249\",[]],[\"name/250\",[172,46.944]],[\"comment/250\",[]],[\"name/251\",[173,57.93]],[\"comment/251\",[]],[\"name/252\",[174,57.93]],[\"comment/252\",[]],[\"name/253\",[175,57.93]],[\"comment/253\",[]],[\"name/254\",[176,57.93]],[\"comment/254\",[]],[\"name/255\",[177,52.822]],[\"comment/255\",[]],[\"name/256\",[178,57.93]],[\"comment/256\",[]],[\"name/257\",[179,49.457]],[\"comment/257\",[]],[\"name/258\",[72,46.944]],[\"comment/258\",[]],[\"name/259\",[180,52.822]],[\"comment/259\",[]],[\"name/260\",[140,33.363]],[\"comment/260\",[]],[\"name/261\",[181,57.93]],[\"comment/261\",[]],[\"name/262\",[182,57.93]],[\"comment/262\",[]],[\"name/263\",[183,57.93]],[\"comment/263\",[]],[\"name/264\",[184,52.822]],[\"comment/264\",[]],[\"name/265\",[185,57.93]],[\"comment/265\",[]],[\"name/266\",[186,52.822]],[\"comment/266\",[]],[\"name/267\",[187,57.93]],[\"comment/267\",[]],[\"name/268\",[188,57.93]],[\"comment/268\",[]],[\"name/269\",[189,57.93]],[\"comment/269\",[]],[\"name/270\",[190,52.822]],[\"comment/270\",[]],[\"name/271\",[191,57.93]],[\"comment/271\",[]],[\"name/272\",[192,57.93]],[\"comment/272\",[]],[\"name/273\",[53,49.457]],[\"comment/273\",[]],[\"name/274\",[193,57.93]],[\"comment/274\",[]],[\"name/275\",[194,57.93]],[\"comment/275\",[]],[\"name/276\",[195,57.93]],[\"comment/276\",[]],[\"name/277\",[196,57.93]],[\"comment/277\",[]],[\"name/278\",[129,52.822]],[\"comment/278\",[]],[\"name/279\",[197,57.93]],[\"comment/279\",[]],[\"name/280\",[198,57.93]],[\"comment/280\",[]],[\"name/281\",[199,57.93]],[\"comment/281\",[]],[\"name/282\",[200,57.93]],[\"comment/282\",[]],[\"name/283\",[201,57.93]],[\"comment/283\",[]],[\"name/284\",[202,52.822]],[\"comment/284\",[]],[\"name/285\",[203,57.93]],[\"comment/285\",[]],[\"name/286\",[204,52.822]],[\"comment/286\",[]],[\"name/287\",[205,57.93]],[\"comment/287\",[]],[\"name/288\",[206,57.93]],[\"comment/288\",[]],[\"name/289\",[207,57.93]],[\"comment/289\",[]],[\"name/290\",[140,33.363]],[\"comment/290\",[]],[\"name/291\",[208,52.822]],[\"comment/291\",[]],[\"name/292\",[172,46.944]],[\"comment/292\",[]],[\"name/293\",[209,52.822]],[\"comment/293\",[]],[\"name/294\",[179,49.457]],[\"comment/294\",[]],[\"name/295\",[210,52.822]],[\"comment/295\",[]],[\"name/296\",[211,52.822]],[\"comment/296\",[]],[\"name/297\",[212,57.93]],[\"comment/297\",[]],[\"name/298\",[71,46.944]],[\"comment/298\",[]],[\"name/299\",[151,49.457]],[\"comment/299\",[]],[\"name/300\",[213,52.822]],[\"comment/300\",[]],[\"name/301\",[214,52.822]],[\"comment/301\",[]],[\"name/302\",[215,57.93]],[\"comment/302\",[]],[\"name/303\",[216,57.93]],[\"comment/303\",[]],[\"name/304\",[217,57.93]],[\"comment/304\",[]],[\"name/305\",[218,57.93]],[\"comment/305\",[]],[\"name/306\",[219,57.93]],[\"comment/306\",[]],[\"name/307\",[220,57.93]],[\"comment/307\",[]],[\"name/308\",[221,57.93]],[\"comment/308\",[]],[\"name/309\",[222,57.93]],[\"comment/309\",[]],[\"name/310\",[223,57.93]],[\"comment/310\",[]],[\"name/311\",[140,33.363]],[\"comment/311\",[]],[\"name/312\",[224,57.93]],[\"comment/312\",[]],[\"name/313\",[15,40.584]],[\"comment/313\",[]],[\"name/314\",[225,57.93]],[\"comment/314\",[]],[\"name/315\",[15,40.584]],[\"comment/315\",[]],[\"name/316\",[151,49.457]],[\"comment/316\",[]],[\"name/317\",[226,57.93]],[\"comment/317\",[]],[\"name/318\",[140,33.363]],[\"comment/318\",[]],[\"name/319\",[213,52.822]],[\"comment/319\",[]],[\"name/320\",[214,52.822]],[\"comment/320\",[]],[\"name/321\",[186,52.822]],[\"comment/321\",[]],[\"name/322\",[227,57.93]],[\"comment/322\",[]],[\"name/323\",[228,57.93]],[\"comment/323\",[]],[\"name/324\",[229,57.93]],[\"comment/324\",[]],[\"name/325\",[230,57.93]],[\"comment/325\",[]],[\"name/326\",[231,57.93]],[\"comment/326\",[]],[\"name/327\",[184,52.822]],[\"comment/327\",[]],[\"name/328\",[232,57.93]],[\"comment/328\",[]],[\"name/329\",[233,57.93]],[\"comment/329\",[]],[\"name/330\",[190,52.822]],[\"comment/330\",[]],[\"name/331\",[57,43.267]],[\"comment/331\",[]],[\"name/332\",[65,49.457]],[\"comment/332\",[]],[\"name/333\",[66,49.457]],[\"comment/333\",[]],[\"name/334\",[67,49.457]],[\"comment/334\",[]],[\"name/335\",[68,49.457]],[\"comment/335\",[]],[\"name/336\",[69,49.457]],[\"comment/336\",[]],[\"name/337\",[70,49.457]],[\"comment/337\",[]],[\"name/338\",[234,57.93]],[\"comment/338\",[]],[\"name/339\",[235,57.93]],[\"comment/339\",[]],[\"name/340\",[236,57.93]],[\"comment/340\",[]],[\"name/341\",[237,57.93]],[\"comment/341\",[]],[\"name/342\",[238,57.93]],[\"comment/342\",[]],[\"name/343\",[239,57.93]],[\"comment/343\",[]],[\"name/344\",[240,57.93]],[\"comment/344\",[]],[\"name/345\",[241,57.93]],[\"comment/345\",[]],[\"name/346\",[97,52.822]],[\"comment/346\",[]],[\"name/347\",[242,57.93]],[\"comment/347\",[]],[\"name/348\",[243,57.93]],[\"comment/348\",[]],[\"name/349\",[244,57.93]],[\"comment/349\",[]],[\"name/350\",[15,40.584]],[\"comment/350\",[]],[\"name/351\",[245,57.93]],[\"comment/351\",[]],[\"name/352\",[15,40.584]],[\"comment/352\",[]],[\"name/353\",[246,57.93]],[\"comment/353\",[]],[\"name/354\",[140,33.363]],[\"comment/354\",[]],[\"name/355\",[177,52.822]],[\"comment/355\",[]],[\"name/356\",[247,57.93]],[\"comment/356\",[]],[\"name/357\",[248,57.93]],[\"comment/357\",[]],[\"name/358\",[249,57.93]],[\"comment/358\",[]],[\"name/359\",[250,57.93]],[\"comment/359\",[]],[\"name/360\",[251,57.93]],[\"comment/360\",[]],[\"name/361\",[252,57.93]],[\"comment/361\",[]],[\"name/362\",[253,57.93]],[\"comment/362\",[]],[\"name/363\",[254,57.93]],[\"comment/363\",[]],[\"name/364\",[255,57.93]],[\"comment/364\",[]],[\"name/365\",[256,57.93]],[\"comment/365\",[]],[\"name/366\",[257,57.93]],[\"comment/366\",[]],[\"name/367\",[258,57.93]],[\"comment/367\",[]],[\"name/368\",[259,57.93]],[\"comment/368\",[]],[\"name/369\",[260,57.93]],[\"comment/369\",[]],[\"name/370\",[261,57.93]],[\"comment/370\",[]],[\"name/371\",[262,57.93]],[\"comment/371\",[]],[\"name/372\",[140,33.363]],[\"comment/372\",[]],[\"name/373\",[263,57.93]],[\"comment/373\",[]],[\"name/374\",[264,57.93]],[\"comment/374\",[]],[\"name/375\",[265,57.93]],[\"comment/375\",[]],[\"name/376\",[266,57.93]],[\"comment/376\",[]],[\"name/377\",[267,57.93]],[\"comment/377\",[]],[\"name/378\",[268,57.93]],[\"comment/378\",[]],[\"name/379\",[269,57.93]],[\"comment/379\",[]],[\"name/380\",[270,57.93]],[\"comment/380\",[]],[\"name/381\",[271,57.93]],[\"comment/381\",[]],[\"name/382\",[272,57.93]],[\"comment/382\",[]],[\"name/383\",[273,57.93]],[\"comment/383\",[]],[\"name/384\",[274,57.93]],[\"comment/384\",[]],[\"name/385\",[275,57.93]],[\"comment/385\",[]],[\"name/386\",[276,57.93]],[\"comment/386\",[]],[\"name/387\",[71,46.944]],[\"comment/387\",[]],[\"name/388\",[277,52.822]],[\"comment/388\",[]],[\"name/389\",[143,49.457]],[\"comment/389\",[]],[\"name/390\",[278,57.93]],[\"comment/390\",[]],[\"name/391\",[279,57.93]],[\"comment/391\",[]],[\"name/392\",[280,57.93]],[\"comment/392\",[]],[\"name/393\",[150,44.937]],[\"comment/393\",[]],[\"name/394\",[281,57.93]],[\"comment/394\",[]],[\"name/395\",[282,57.93]],[\"comment/395\",[]],[\"name/396\",[283,57.93]],[\"comment/396\",[]],[\"name/397\",[284,57.93]],[\"comment/397\",[]],[\"name/398\",[285,57.93]],[\"comment/398\",[]],[\"name/399\",[286,57.93]],[\"comment/399\",[]],[\"name/400\",[287,57.93]],[\"comment/400\",[]],[\"name/401\",[288,57.93]],[\"comment/401\",[]],[\"name/402\",[172,46.944]],[\"comment/402\",[]],[\"name/403\",[72,46.944]],[\"comment/403\",[]],[\"name/404\",[289,57.93]],[\"comment/404\",[]],[\"name/405\",[143,49.457]],[\"comment/405\",[]],[\"name/406\",[290,57.93]],[\"comment/406\",[]],[\"name/407\",[150,44.937]],[\"comment/407\",[]],[\"name/408\",[149,49.457]],[\"comment/408\",[]],[\"name/409\",[150,44.937]],[\"comment/409\",[]],[\"name/410\",[291,57.93]],[\"comment/410\",[]],[\"name/411\",[140,33.363]],[\"comment/411\",[]],[\"name/412\",[166,49.457]],[\"comment/412\",[]],[\"name/413\",[168,49.457]],[\"comment/413\",[]],[\"name/414\",[167,49.457]],[\"comment/414\",[]],[\"name/415\",[165,49.457]],[\"comment/415\",[]],[\"name/416\",[169,49.457]],[\"comment/416\",[]],[\"name/417\",[162,46.944]],[\"comment/417\",[]],[\"name/418\",[163,46.944]],[\"comment/418\",[]],[\"name/419\",[154,46.944]],[\"comment/419\",[]],[\"name/420\",[155,46.944]],[\"comment/420\",[]],[\"name/421\",[156,46.944]],[\"comment/421\",[]],[\"name/422\",[158,46.944]],[\"comment/422\",[]],[\"name/423\",[159,46.944]],[\"comment/423\",[]],[\"name/424\",[160,46.944]],[\"comment/424\",[]],[\"name/425\",[161,46.944]],[\"comment/425\",[]],[\"name/426\",[292,57.93]],[\"comment/426\",[]],[\"name/427\",[140,33.363]],[\"comment/427\",[]],[\"name/428\",[166,49.457]],[\"comment/428\",[]],[\"name/429\",[168,49.457]],[\"comment/429\",[]],[\"name/430\",[167,49.457]],[\"comment/430\",[]],[\"name/431\",[165,49.457]],[\"comment/431\",[]],[\"name/432\",[169,49.457]],[\"comment/432\",[]],[\"name/433\",[162,46.944]],[\"comment/433\",[]],[\"name/434\",[163,46.944]],[\"comment/434\",[]],[\"name/435\",[154,46.944]],[\"comment/435\",[]],[\"name/436\",[155,46.944]],[\"comment/436\",[]],[\"name/437\",[156,46.944]],[\"comment/437\",[]],[\"name/438\",[158,46.944]],[\"comment/438\",[]],[\"name/439\",[159,46.944]],[\"comment/439\",[]],[\"name/440\",[160,46.944]],[\"comment/440\",[]],[\"name/441\",[161,46.944]],[\"comment/441\",[]],[\"name/442\",[277,52.822]],[\"comment/442\",[]],[\"name/443\",[140,33.363]],[\"comment/443\",[]],[\"name/444\",[293,57.93]],[\"comment/444\",[]],[\"name/445\",[294,57.93]],[\"comment/445\",[]],[\"name/446\",[295,57.93]],[\"comment/446\",[]],[\"name/447\",[296,57.93]],[\"comment/447\",[]],[\"name/448\",[180,52.822]],[\"comment/448\",[]],[\"name/449\",[297,57.93]],[\"comment/449\",[]],[\"name/450\",[298,57.93]],[\"comment/450\",[]],[\"name/451\",[299,57.93]],[\"comment/451\",[]],[\"name/452\",[204,52.822]],[\"comment/452\",[]],[\"name/453\",[202,52.822]],[\"comment/453\",[]],[\"name/454\",[300,57.93]],[\"comment/454\",[]],[\"name/455\",[301,57.93]],[\"comment/455\",[]],[\"name/456\",[302,57.93]],[\"comment/456\",[]],[\"name/457\",[303,57.93]],[\"comment/457\",[]],[\"name/458\",[304,57.93]],[\"comment/458\",[]],[\"name/459\",[305,57.93]],[\"comment/459\",[]],[\"name/460\",[48,52.822]],[\"comment/460\",[]],[\"name/461\",[306,57.93]],[\"comment/461\",[]],[\"name/462\",[307,57.93]],[\"comment/462\",[]],[\"name/463\",[308,57.93]],[\"comment/463\",[]],[\"name/464\",[309,57.93]],[\"comment/464\",[]],[\"name/465\",[310,57.93]],[\"comment/465\",[]],[\"name/466\",[311,57.93]],[\"comment/466\",[]],[\"name/467\",[312,57.93]],[\"comment/467\",[]],[\"name/468\",[313,57.93]],[\"comment/468\",[]],[\"name/469\",[314,57.93]],[\"comment/469\",[]],[\"name/470\",[315,57.93]],[\"comment/470\",[]],[\"name/471\",[316,57.93]],[\"comment/471\",[]],[\"name/472\",[317,57.93]],[\"comment/472\",[]],[\"name/473\",[211,52.822]],[\"comment/473\",[]],[\"name/474\",[318,57.93]],[\"comment/474\",[]],[\"name/475\",[319,57.93]],[\"comment/475\",[]],[\"name/476\",[320,57.93]],[\"comment/476\",[]],[\"name/477\",[321,57.93]],[\"comment/477\",[]],[\"name/478\",[322,57.93]],[\"comment/478\",[]],[\"name/479\",[323,57.93]],[\"comment/479\",[]],[\"name/480\",[324,57.93]],[\"comment/480\",[]],[\"name/481\",[325,57.93]],[\"comment/481\",[]],[\"name/482\",[326,57.93]],[\"comment/482\",[]],[\"name/483\",[327,57.93]],[\"comment/483\",[]],[\"name/484\",[328,57.93]],[\"comment/484\",[]],[\"name/485\",[209,52.822]],[\"comment/485\",[]],[\"name/486\",[329,57.93]],[\"comment/486\",[]],[\"name/487\",[208,52.822]],[\"comment/487\",[]],[\"name/488\",[172,46.944]],[\"comment/488\",[]],[\"name/489\",[179,49.457]],[\"comment/489\",[]],[\"name/490\",[210,52.822]],[\"comment/490\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":15,\"name\":{\"15\":{},\"35\":{},\"45\":{},\"109\":{},\"313\":{},\"315\":{},\"350\":{},\"352\":{}},\"comment\":{}}],[\"_adapter\",{\"_index\":152,\"name\":{\"218\":{}},\"comment\":{}}],[\"_address\",{\"_index\":227,\"name\":{\"322\":{}},\"comment\":{}}],[\"_backupdepositdata\",{\"_index\":322,\"name\":{\"478\":{}},\"comment\":{}}],[\"_calcwithdrawalfee\",{\"_index\":302,\"name\":{\"456\":{}},\"comment\":{}}],[\"_callbacks\",{\"_index\":249,\"name\":{\"358\":{}},\"comment\":{}}],[\"_chain\",{\"_index\":294,\"name\":{\"445\":{}},\"comment\":{}}],[\"_chainid\",{\"_index\":184,\"name\":{\"264\":{},\"327\":{}},\"comment\":{}}],[\"_checkprovider\",{\"_index\":297,\"name\":{\"449\":{}},\"comment\":{}}],[\"_emptysigner\",{\"_index\":182,\"name\":{\"262\":{}},\"comment\":{}}],[\"_errorhandlers\",{\"_index\":250,\"name\":{\"359\":{}},\"comment\":{}}],[\"_fetched\",{\"_index\":186,\"name\":{\"266\":{},\"321\":{}},\"comment\":{}}],[\"_findleavesandindices\",{\"_index\":303,\"name\":{\"457\":{}},\"comment\":{}}],[\"_getpromiseindex\",{\"_index\":260,\"name\":{\"369\":{}},\"comment\":{}}],[\"_handlehttperror\",{\"_index\":237,\"name\":{\"341\":{}},\"comment\":{}}],[\"_id\",{\"_index\":141,\"name\":{\"168\":{},\"177\":{},\"186\":{},\"194\":{},\"202\":{},\"213\":{}},\"comment\":{}}],[\"_instanceeventtofilter\",{\"_index\":311,\"name\":{\"466\":{}},\"comment\":{}}],[\"_invoices\",{\"_index\":296,\"name\":{\"447\":{}},\"comment\":{}}],[\"_miningfee\",{\"_index\":230,\"name\":{\"325\":{}},\"comment\":{}}],[\"_mutex\",{\"_index\":293,\"name\":{\"444\":{}},\"comment\":{}}],[\"_mutexes\",{\"_index\":263,\"name\":{\"373\":{}},\"comment\":{}}],[\"_notes\",{\"_index\":295,\"name\":{\"446\":{}},\"comment\":{}}],[\"_path\",{\"_index\":153,\"name\":{\"219\":{}},\"comment\":{}}],[\"_pool\",{\"_index\":259,\"name\":{\"368\":{}},\"comment\":{}}],[\"_populatesyncoptions\",{\"_index\":211,\"name\":{\"296\":{},\"473\":{}},\"comment\":{}}],[\"_prices\",{\"_index\":232,\"name\":{\"328\":{}},\"comment\":{}}],[\"_promises\",{\"_index\":251,\"name\":{\"360\":{}},\"comment\":{}}],[\"_propertiesfetched\",{\"_index\":190,\"name\":{\"270\":{},\"330\":{}},\"comment\":{}}],[\"_resolveinstance\",{\"_index\":313,\"name\":{\"468\":{}},\"comment\":{}}],[\"_resolveinstanceevent\",{\"_index\":312,\"name\":{\"467\":{}},\"comment\":{}}],[\"_results\",{\"_index\":248,\"name\":{\"357\":{}},\"comment\":{}}],[\"_rev\",{\"_index\":142,\"name\":{\"169\":{},\"178\":{},\"187\":{},\"195\":{},\"203\":{},\"214\":{}},\"comment\":{}}],[\"_servicefee\",{\"_index\":229,\"name\":{\"324\":{}},\"comment\":{}}],[\"_signer\",{\"_index\":183,\"name\":{\"263\":{}},\"comment\":{}}],[\"_signerconnected\",{\"_index\":189,\"name\":{\"269\":{}},\"comment\":{}}],[\"_status\",{\"_index\":231,\"name\":{\"326\":{}},\"comment\":{}}],[\"_symbol\",{\"_index\":185,\"name\":{\"265\":{}},\"comment\":{}}],[\"_totaladded\",{\"_index\":247,\"name\":{\"356\":{}},\"comment\":{}}],[\"_unzip\",{\"_index\":157,\"name\":{\"223\":{}},\"comment\":{}}],[\"_version\",{\"_index\":228,\"name\":{\"323\":{}},\"comment\":{}}],[\"_waitiffull\",{\"_index\":261,\"name\":{\"370\":{}},\"comment\":{}}],[\"acquire\",{\"_index\":264,\"name\":{\"374\":{}},\"comment\":{}}],[\"adapter\",{\"_index\":73,\"name\":{\"99\":{}},\"comment\":{}}],[\"address\",{\"_index\":57,\"name\":{\"71\":{},\"79\":{},\"83\":{},\"90\":{},\"206\":{},\"331\":{}},\"comment\":{}}],[\"all\",{\"_index\":256,\"name\":{\"365\":{}},\"comment\":{}}],[\"anonymityminingenabled\",{\"_index\":59,\"name\":{\"73\":{}},\"comment\":{}}],[\"asyncutils\",{\"_index\":242,\"name\":{\"347\":{}},\"comment\":{}}],[\"backupinvoice\",{\"_index\":319,\"name\":{\"475\":{}},\"comment\":{}}],[\"backupinvoices\",{\"_index\":321,\"name\":{\"477\":{}},\"comment\":{}}],[\"backupnote\",{\"_index\":318,\"name\":{\"474\":{}},\"comment\":{}}],[\"backupnotes\",{\"_index\":320,\"name\":{\"476\":{}},\"comment\":{}}],[\"base\",{\"_index\":139,\"name\":{\"166\":{},\"216\":{}},\"comment\":{}}],[\"batchcall\",{\"_index\":199,\"name\":{\"281\":{}},\"comment\":{}}],[\"bigint\",{\"_index\":1,\"name\":{\"1\":{}},\"comment\":{}}],[\"biginttohex\",{\"_index\":271,\"name\":{\"381\":{}},\"comment\":{}}],[\"blockdelta\",{\"_index\":175,\"name\":{\"253\":{}},\"comment\":{}}],[\"blockdivisor\",{\"_index\":176,\"name\":{\"254\":{}},\"comment\":{}}],[\"blocknumber\",{\"_index\":144,\"name\":{\"172\":{},\"181\":{}},\"comment\":{}}],[\"buffertohex\",{\"_index\":269,\"name\":{\"379\":{}},\"comment\":{}}],[\"builddepositproof\",{\"_index\":281,\"name\":{\"394\":{}},\"comment\":{}}],[\"builddoc\",{\"_index\":166,\"name\":{\"233\":{},\"412\":{},\"428\":{}},\"comment\":{}}],[\"buildmerkletree\",{\"_index\":25,\"name\":{\"30\":{},\"62\":{}},\"comment\":{}}],[\"cache\",{\"_index\":72,\"name\":{\"98\":{},\"215\":{},\"258\":{},\"403\":{}},\"comment\":{}}],[\"cachedirexists\",{\"_index\":86,\"name\":{\"113\":{}},\"comment\":{}}],[\"caches\",{\"_index\":208,\"name\":{\"291\":{},\"487\":{}},\"comment\":{}}],[\"calcdepositproofs\",{\"_index\":49,\"name\":{\"63\":{}},\"comment\":{}}],[\"calcpedersenhash\",{\"_index\":46,\"name\":{\"58\":{}},\"comment\":{}}],[\"callback\",{\"_index\":244,\"name\":{\"349\":{}},\"comment\":{}}],[\"callinstancedirectly\",{\"_index\":279,\"name\":{\"391\":{}},\"comment\":{}}],[\"chain\",{\"_index\":180,\"name\":{\"259\":{},\"448\":{}},\"comment\":{}}],[\"chainid\",{\"_index\":69,\"name\":{\"95\":{},\"211\":{},\"336\":{}},\"comment\":{}}],[\"checkknownroot\",{\"_index\":287,\"name\":{\"400\":{}},\"comment\":{}}],[\"checknotesspent\",{\"_index\":286,\"name\":{\"399\":{}},\"comment\":{}}],[\"classicinstance\",{\"_index\":58,\"name\":{\"72\":{}},\"comment\":{}}],[\"clear\",{\"_index\":163,\"name\":{\"229\":{},\"238\":{},\"418\":{},\"434\":{}},\"comment\":{}}],[\"clearlistener\",{\"_index\":306,\"name\":{\"461\":{}},\"comment\":{}}],[\"clearlistenerbyindex\",{\"_index\":210,\"name\":{\"295\":{},\"490\":{}},\"comment\":{}}],[\"clearlisteners\",{\"_index\":307,\"name\":{\"462\":{}},\"comment\":{}}],[\"close\",{\"_index\":162,\"name\":{\"228\":{},\"237\":{},\"417\":{},\"433\":{}},\"comment\":{}}],[\"commitment\",{\"_index\":8,\"name\":{\"8\":{},\"174\":{}},\"comment\":{}}],[\"concurrencylimit\",{\"_index\":177,\"name\":{\"255\":{},\"355\":{}},\"comment\":{}}],[\"connect\",{\"_index\":298,\"name\":{\"450\":{}},\"comment\":{}}],[\"connectsigner\",{\"_index\":187,\"name\":{\"267\":{}},\"comment\":{}}],[\"constants\",{\"_index\":136,\"name\":{\"163\":{}},\"comment\":{}}],[\"constructor\",{\"_index\":140,\"name\":{\"167\":{},\"171\":{},\"180\":{},\"189\":{},\"197\":{},\"205\":{},\"217\":{},\"231\":{},\"260\":{},\"290\":{},\"311\":{},\"318\":{},\"354\":{},\"372\":{},\"411\":{},\"427\":{},\"443\":{}},\"comment\":{}}],[\"contracts\",{\"_index\":200,\"name\":{\"282\":{}},\"comment\":{}}],[\"core\",{\"_index\":277,\"name\":{\"388\":{},\"442\":{}},\"comment\":{}}],[\"createdeposit\",{\"_index\":4,\"name\":{\"4\":{},\"27\":{},\"61\":{}},\"comment\":{}}],[\"createdepositproof\",{\"_index\":300,\"name\":{\"454\":{}},\"comment\":{}}],[\"createdepositproofs\",{\"_index\":301,\"name\":{\"455\":{}},\"comment\":{}}],[\"createdeposittransaction\",{\"_index\":314,\"name\":{\"469\":{}},\"comment\":{}}],[\"createdeposittransactions\",{\"_index\":315,\"name\":{\"470\":{}},\"comment\":{}}],[\"createnote\",{\"_index\":47,\"name\":{\"59\":{}},\"comment\":{}}],[\"crypto\",{\"_index\":0,\"name\":{\"0\":{}},\"comment\":{}}],[\"data\",{\"_index\":50,\"name\":{\"64\":{}},\"comment\":{}}],[\"db\",{\"_index\":156,\"name\":{\"222\":{},\"241\":{},\"421\":{},\"437\":{}},\"comment\":{}}],[\"decimals\",{\"_index\":54,\"name\":{\"68\":{},\"76\":{},\"82\":{}},\"comment\":{}}],[\"denomination\",{\"_index\":55,\"name\":{\"69\":{},\"77\":{},\"88\":{},\"192\":{},\"200\":{}},\"comment\":{}}],[\"deployblock\",{\"_index\":56,\"name\":{\"70\":{},\"78\":{}},\"comment\":{}}],[\"deposit\",{\"_index\":143,\"name\":{\"170\":{},\"389\":{},\"405\":{}},\"comment\":{}}],[\"depositcache\",{\"_index\":291,\"name\":{\"410\":{}},\"comment\":{}}],[\"depositinfo\",{\"_index\":37,\"name\":{\"49\":{}},\"comment\":{}}],[\"depositproof\",{\"_index\":22,\"name\":{\"23\":{},\"33\":{}},\"comment\":{}}],[\"depositsperinstance\",{\"_index\":278,\"name\":{\"390\":{}},\"comment\":{}}],[\"dirpath\",{\"_index\":74,\"name\":{\"100\":{}},\"comment\":{}}],[\"docs\",{\"_index\":138,\"name\":{\"165\":{}},\"comment\":{}}],[\"donotpopulate\",{\"_index\":280,\"name\":{\"392\":{}},\"comment\":{}}],[\"elements\",{\"_index\":17,\"name\":{\"17\":{}},\"comment\":{}}],[\"ensureerror\",{\"_index\":241,\"name\":{\"345\":{}},\"comment\":{}}],[\"errorhandler\",{\"_index\":245,\"name\":{\"351\":{}},\"comment\":{}}],[\"errorutils\",{\"_index\":240,\"name\":{\"344\":{}},\"comment\":{}}],[\"ethpurchaseamounts\",{\"_index\":285,\"name\":{\"398\":{}},\"comment\":{}}],[\"exists\",{\"_index\":276,\"name\":{\"386\":{}},\"comment\":{}}],[\"exportcachejson\",{\"_index\":324,\"name\":{\"480\":{}},\"comment\":{}}],[\"exportcachezip\",{\"_index\":323,\"name\":{\"479\":{}},\"comment\":{}}],[\"fee\",{\"_index\":33,\"name\":{\"42\":{},\"185\":{}},\"comment\":{}}],[\"fetchchaindata\",{\"_index\":188,\"name\":{\"268\":{}},\"comment\":{}}],[\"fetchproperties\",{\"_index\":233,\"name\":{\"329\":{}},\"comment\":{}}],[\"files\",{\"_index\":76,\"name\":{\"102\":{}},\"comment\":{}}],[\"fromcache\",{\"_index\":226,\"name\":{\"317\":{}},\"comment\":{}}],[\"gasprice\",{\"_index\":282,\"name\":{\"395\":{}},\"comment\":{}}],[\"gaspricecushion\",{\"_index\":283,\"name\":{\"396\":{}},\"comment\":{}}],[\"get\",{\"_index\":160,\"name\":{\"226\":{},\"244\":{},\"424\":{},\"440\":{}},\"comment\":{}}],[\"getaccountbalance\",{\"_index\":194,\"name\":{\"275\":{}},\"comment\":{}}],[\"getcachepath\",{\"_index\":85,\"name\":{\"112\":{}},\"comment\":{}}],[\"getcallbacks\",{\"_index\":167,\"name\":{\"234\":{},\"414\":{},\"430\":{}},\"comment\":{}}],[\"getclassicinstancedata\",{\"_index\":101,\"name\":{\"128\":{}},\"comment\":{}}],[\"getclassicinstancedatasync\",{\"_index\":102,\"name\":{\"129\":{}},\"comment\":{}}],[\"getclassicsubgraphurl\",{\"_index\":134,\"name\":{\"161\":{}},\"comment\":{}}],[\"getclassicsubgraphurlsync\",{\"_index\":135,\"name\":{\"162\":{}},\"comment\":{}}],[\"getdefaulthash\",{\"_index\":40,\"name\":{\"52\":{}},\"comment\":{}}],[\"geterror\",{\"_index\":97,\"name\":{\"124\":{},\"346\":{}},\"comment\":{}}],[\"geterrorhandlers\",{\"_index\":168,\"name\":{\"235\":{},\"413\":{},\"429\":{}},\"comment\":{}}],[\"getethpurchaseprice\",{\"_index\":235,\"name\":{\"339\":{}},\"comment\":{}}],[\"getgasprice\",{\"_index\":195,\"name\":{\"276\":{}},\"comment\":{}}],[\"getgroth16\",{\"_index\":43,\"name\":{\"55\":{}},\"comment\":{}}],[\"getinstance\",{\"_index\":204,\"name\":{\"286\":{},\"452\":{}},\"comment\":{}}],[\"getinstanceaddress\",{\"_index\":111,\"name\":{\"138\":{}},\"comment\":{}}],[\"getinstanceaddresses\",{\"_index\":109,\"name\":{\"136\":{}},\"comment\":{}}],[\"getinstanceaddressessync\",{\"_index\":110,\"name\":{\"137\":{}},\"comment\":{}}],[\"getinstanceaddresssync\",{\"_index\":112,\"name\":{\"139\":{}},\"comment\":{}}],[\"getinstancedeployblocknum\",{\"_index\":119,\"name\":{\"146\":{}},\"comment\":{}}],[\"getinstancedeployblocknums\",{\"_index\":117,\"name\":{\"144\":{}},\"comment\":{}}],[\"getinstancedeployblocknumssync\",{\"_index\":118,\"name\":{\"145\":{}},\"comment\":{}}],[\"getinstancedeployblocknumsync\",{\"_index\":120,\"name\":{\"147\":{}},\"comment\":{}}],[\"getinstancelookupkeys\",{\"_index\":103,\"name\":{\"130\":{}},\"comment\":{}}],[\"getinstancelookupkeyssync\",{\"_index\":104,\"name\":{\"131\":{}},\"comment\":{}}],[\"getinstances\",{\"_index\":299,\"name\":{\"451\":{}},\"comment\":{}}],[\"getmodulespath\",{\"_index\":83,\"name\":{\"110\":{}},\"comment\":{}}],[\"getmulticall3address\",{\"_index\":123,\"name\":{\"150\":{}},\"comment\":{}}],[\"getmulticall3addresssync\",{\"_index\":126,\"name\":{\"153\":{}},\"comment\":{}}],[\"getmulticalladdress\",{\"_index\":122,\"name\":{\"149\":{}},\"comment\":{}}],[\"getmulticalladdresssync\",{\"_index\":125,\"name\":{\"152\":{}},\"comment\":{}}],[\"getnetworksymbol\",{\"_index\":107,\"name\":{\"134\":{}},\"comment\":{}}],[\"getnetworksymbolsync\",{\"_index\":108,\"name\":{\"135\":{}},\"comment\":{}}],[\"getpathstringbasedcontent\",{\"_index\":105,\"name\":{\"132\":{}},\"comment\":{}}],[\"getpathstringbasedcontentsync\",{\"_index\":106,\"name\":{\"133\":{}},\"comment\":{}}],[\"getprovingkey\",{\"_index\":41,\"name\":{\"53\":{}},\"comment\":{}}],[\"getproxy\",{\"_index\":201,\"name\":{\"283\":{}},\"comment\":{}}],[\"getproxyaddress\",{\"_index\":121,\"name\":{\"148\":{}},\"comment\":{}}],[\"getproxyaddresssync\",{\"_index\":124,\"name\":{\"151\":{}},\"comment\":{}}],[\"getrandomfromrange\",{\"_index\":267,\"name\":{\"377\":{}},\"comment\":{}}],[\"getregistry\",{\"_index\":203,\"name\":{\"285\":{}},\"comment\":{}}],[\"getregistryaddress\",{\"_index\":113,\"name\":{\"140\":{}},\"comment\":{}}],[\"getregistryaddresssync\",{\"_index\":114,\"name\":{\"141\":{}},\"comment\":{}}],[\"getregistrydeployblocknum\",{\"_index\":115,\"name\":{\"142\":{}},\"comment\":{}}],[\"getregistrydeployblocknumsync\",{\"_index\":116,\"name\":{\"143\":{}},\"comment\":{}}],[\"getresourcepath\",{\"_index\":84,\"name\":{\"111\":{}},\"comment\":{}}],[\"getrouter\",{\"_index\":202,\"name\":{\"284\":{},\"453\":{}},\"comment\":{}}],[\"getrows\",{\"_index\":161,\"name\":{\"227\":{},\"245\":{},\"425\":{},\"441\":{}},\"comment\":{}}],[\"gettoken\",{\"_index\":205,\"name\":{\"287\":{}},\"comment\":{}}],[\"gettokenaddress\",{\"_index\":127,\"name\":{\"154\":{}},\"comment\":{}}],[\"gettokenaddresssync\",{\"_index\":128,\"name\":{\"155\":{}},\"comment\":{}}],[\"gettokenbalance\",{\"_index\":197,\"name\":{\"279\":{}},\"comment\":{}}],[\"gettokencontract\",{\"_index\":196,\"name\":{\"277\":{}},\"comment\":{}}],[\"gettokendecimals\",{\"_index\":129,\"name\":{\"156\":{},\"278\":{}},\"comment\":{}}],[\"gettokendecimalssync\",{\"_index\":130,\"name\":{\"157\":{}},\"comment\":{}}],[\"gettornadocircuit\",{\"_index\":42,\"name\":{\"54\":{}},\"comment\":{}}],[\"gettorntoken\",{\"_index\":206,\"name\":{\"288\":{}},\"comment\":{}}],[\"getuncensoredrpcurl\",{\"_index\":132,\"name\":{\"159\":{}},\"comment\":{}}],[\"getuncensoredrpcurlsync\",{\"_index\":133,\"name\":{\"160\":{}},\"comment\":{}}],[\"getvalue\",{\"_index\":99,\"name\":{\"126\":{}},\"comment\":{}}],[\"getzeroelement\",{\"_index\":39,\"name\":{\"51\":{}},\"comment\":{}}],[\"groth16\",{\"_index\":36,\"name\":{\"48\":{}},\"comment\":{}}],[\"groth16proof\",{\"_index\":18,\"name\":{\"18\":{}},\"comment\":{}}],[\"gunzipsync\",{\"_index\":80,\"name\":{\"106\":{}},\"comment\":{}}],[\"gzipsync\",{\"_index\":79,\"name\":{\"105\":{}},\"comment\":{}}],[\"handlewithdrawal\",{\"_index\":236,\"name\":{\"340\":{}},\"comment\":{}}],[\"headers\",{\"_index\":221,\"name\":{\"308\":{}},\"comment\":{}}],[\"height\",{\"_index\":26,\"name\":{\"31\":{}},\"comment\":{}}],[\"hexcommitment\",{\"_index\":9,\"name\":{\"9\":{}},\"comment\":{}}],[\"hexnullifierhash\",{\"_index\":11,\"name\":{\"11\":{},\"39\":{}},\"comment\":{}}],[\"hexutils\",{\"_index\":268,\"name\":{\"378\":{}},\"comment\":{}}],[\"httpclient\",{\"_index\":214,\"name\":{\"301\":{},\"320\":{}},\"comment\":{}}],[\"id\",{\"_index\":192,\"name\":{\"272\":{}},\"comment\":{}}],[\"indices\",{\"_index\":16,\"name\":{\"16\":{}},\"comment\":{}}],[\"initializepooler\",{\"_index\":169,\"name\":{\"236\":{},\"416\":{},\"432\":{}},\"comment\":{}}],[\"inputfor\",{\"_index\":23,\"name\":{\"24\":{}},\"comment\":{}}],[\"instancelookup\",{\"_index\":62,\"name\":{\"85\":{}},\"comment\":{}}],[\"invoice\",{\"_index\":150,\"name\":{\"196\":{},\"201\":{},\"393\":{},\"407\":{},\"409\":{}},\"comment\":{}}],[\"isopen\",{\"_index\":155,\"name\":{\"221\":{},\"240\":{},\"420\":{},\"436\":{}},\"comment\":{}}],[\"json\",{\"_index\":92,\"name\":{\"119\":{}},\"comment\":{}}],[\"jsonify\",{\"_index\":159,\"name\":{\"225\":{},\"243\":{},\"423\":{},\"439\":{}},\"comment\":{}}],[\"keys\",{\"_index\":61,\"name\":{\"84\":{}},\"comment\":{}}],[\"latestblocknum\",{\"_index\":193,\"name\":{\"274\":{}},\"comment\":{}}],[\"leafindex\",{\"_index\":30,\"name\":{\"38\":{},\"173\":{}},\"comment\":{}}],[\"leaves\",{\"_index\":27,\"name\":{\"32\":{}},\"comment\":{}}],[\"listenfordeposits\",{\"_index\":308,\"name\":{\"463\":{}},\"comment\":{}}],[\"listenforevents\",{\"_index\":179,\"name\":{\"257\":{},\"294\":{},\"489\":{}},\"comment\":{}}],[\"listenforinstanceevents\",{\"_index\":310,\"name\":{\"465\":{}},\"comment\":{}}],[\"listenforwithdrawals\",{\"_index\":309,\"name\":{\"464\":{}},\"comment\":{}}],[\"load\",{\"_index\":93,\"name\":{\"120\":{}},\"comment\":{}}],[\"loadcache\",{\"_index\":209,\"name\":{\"293\":{},\"485\":{}},\"comment\":{}}],[\"loaddepositcache\",{\"_index\":327,\"name\":{\"483\":{}},\"comment\":{}}],[\"loadinstance\",{\"_index\":329,\"name\":{\"486\":{}},\"comment\":{}}],[\"loadinvoicescache\",{\"_index\":326,\"name\":{\"482\":{}},\"comment\":{}}],[\"loadmap\",{\"_index\":96,\"name\":{\"123\":{}},\"comment\":{}}],[\"loadnotes\",{\"_index\":304,\"name\":{\"458\":{}},\"comment\":{}}],[\"loadnotescache\",{\"_index\":325,\"name\":{\"481\":{}},\"comment\":{}}],[\"loadraw\",{\"_index\":88,\"name\":{\"115\":{}},\"comment\":{}}],[\"loadrawsync\",{\"_index\":89,\"name\":{\"116\":{}},\"comment\":{}}],[\"loadsync\",{\"_index\":94,\"name\":{\"121\":{}},\"comment\":{}}],[\"loadwithdrawalcache\",{\"_index\":328,\"name\":{\"484\":{}},\"comment\":{}}],[\"makecachedir\",{\"_index\":87,\"name\":{\"114\":{}},\"comment\":{}}],[\"merkle_tree_height\",{\"_index\":137,\"name\":{\"164\":{}},\"comment\":{}}],[\"merkleproof\",{\"_index\":12,\"name\":{\"12\":{},\"22\":{}},\"comment\":{}}],[\"merkletreeheight\",{\"_index\":288,\"name\":{\"401\":{}},\"comment\":{}}],[\"miningfeepercent\",{\"_index\":67,\"name\":{\"93\":{},\"209\":{},\"334\":{}},\"comment\":{}}],[\"msg\",{\"_index\":24,\"name\":{\"26\":{}},\"comment\":{}}],[\"mstimeout\",{\"_index\":178,\"name\":{\"256\":{}},\"comment\":{}}],[\"name\",{\"_index\":154,\"name\":{\"220\":{},\"239\":{},\"419\":{},\"435\":{}},\"comment\":{}}],[\"network\",{\"_index\":52,\"name\":{\"66\":{},\"74\":{},\"81\":{},\"86\":{},\"190\":{},\"198\":{},\"246\":{}},\"comment\":{}}],[\"note\",{\"_index\":149,\"name\":{\"188\":{},\"193\":{},\"408\":{}},\"comment\":{}}],[\"nullifier\",{\"_index\":5,\"name\":{\"5\":{},\"28\":{},\"46\":{}},\"comment\":{}}],[\"nullifierhash\",{\"_index\":10,\"name\":{\"10\":{},\"183\":{}},\"comment\":{}}],[\"numbertohex\",{\"_index\":270,\"name\":{\"380\":{}},\"comment\":{}}],[\"numberutils\",{\"_index\":265,\"name\":{\"375\":{}},\"comment\":{}}],[\"obfuscationoptions\",{\"_index\":219,\"name\":{\"306\":{}},\"comment\":{}}],[\"objectutils\",{\"_index\":273,\"name\":{\"383\":{}},\"comment\":{}}],[\"offchain\",{\"_index\":131,\"name\":{\"158\":{}},\"comment\":{}}],[\"onchain\",{\"_index\":100,\"name\":{\"127\":{}},\"comment\":{}}],[\"options\",{\"_index\":71,\"name\":{\"97\":{},\"249\":{},\"298\":{},\"387\":{}},\"comment\":{}}],[\"outputof\",{\"_index\":2,\"name\":{\"2\":{}},\"comment\":{}}],[\"parentpath\",{\"_index\":77,\"name\":{\"103\":{}},\"comment\":{}}],[\"parsenote\",{\"_index\":48,\"name\":{\"60\":{},\"460\":{}},\"comment\":{}}],[\"parsenotes\",{\"_index\":305,\"name\":{\"459\":{}},\"comment\":{}}],[\"path\",{\"_index\":14,\"name\":{\"14\":{}},\"comment\":{}}],[\"pathgetter\",{\"_index\":82,\"name\":{\"108\":{}},\"comment\":{}}],[\"pedersenhash\",{\"_index\":3,\"name\":{\"3\":{},\"25\":{}},\"comment\":{}}],[\"pending\",{\"_index\":252,\"name\":{\"361\":{}},\"comment\":{}}],[\"persistent\",{\"_index\":75,\"name\":{\"101\":{}},\"comment\":{}}],[\"pi_a\",{\"_index\":19,\"name\":{\"19\":{}},\"comment\":{}}],[\"pi_b\",{\"_index\":20,\"name\":{\"20\":{}},\"comment\":{}}],[\"pi_c\",{\"_index\":21,\"name\":{\"21\":{}},\"comment\":{}}],[\"pool\",{\"_index\":255,\"name\":{\"364\":{}},\"comment\":{}}],[\"pooler\",{\"_index\":165,\"name\":{\"232\":{},\"415\":{},\"431\":{}},\"comment\":{}}],[\"poolmany\",{\"_index\":254,\"name\":{\"363\":{}},\"comment\":{}}],[\"populate\",{\"_index\":274,\"name\":{\"384\":{}},\"comment\":{}}],[\"populatebatchcall\",{\"_index\":198,\"name\":{\"280\":{}},\"comment\":{}}],[\"port\",{\"_index\":220,\"name\":{\"307\":{}},\"comment\":{}}],[\"preimage\",{\"_index\":7,\"name\":{\"7\":{}},\"comment\":{}}],[\"prepareaddress\",{\"_index\":272,\"name\":{\"382\":{}},\"comment\":{}}],[\"prices\",{\"_index\":70,\"name\":{\"96\":{},\"212\":{},\"337\":{}},\"comment\":{}}],[\"primitives\",{\"_index\":45,\"name\":{\"57\":{}},\"comment\":{}}],[\"private\",{\"_index\":35,\"name\":{\"44\":{}},\"comment\":{}}],[\"promisepooler\",{\"_index\":246,\"name\":{\"353\":{}},\"comment\":{}}],[\"properties\",{\"_index\":234,\"name\":{\"338\":{}},\"comment\":{}}],[\"provider\",{\"_index\":181,\"name\":{\"261\":{}},\"comment\":{}}],[\"public\",{\"_index\":28,\"name\":{\"34\":{}},\"comment\":{}}],[\"race\",{\"_index\":257,\"name\":{\"366\":{}},\"comment\":{}}],[\"randombiginteger\",{\"_index\":266,\"name\":{\"376\":{}},\"comment\":{}}],[\"recipientaddress\",{\"_index\":31,\"name\":{\"40\":{}},\"comment\":{}}],[\"refund\",{\"_index\":34,\"name\":{\"43\":{}},\"comment\":{}}],[\"regularhttpclient\",{\"_index\":225,\"name\":{\"314\":{}},\"comment\":{}}],[\"relayer\",{\"_index\":151,\"name\":{\"204\":{},\"299\":{},\"316\":{}},\"comment\":{}}],[\"relayeraddress\",{\"_index\":32,\"name\":{\"41\":{}},\"comment\":{}}],[\"relayeroptions\",{\"_index\":218,\"name\":{\"305\":{}},\"comment\":{}}],[\"relayerproperties\",{\"_index\":64,\"name\":{\"89\":{}},\"comment\":{}}],[\"remember\",{\"_index\":238,\"name\":{\"342\":{}},\"comment\":{}}],[\"request\",{\"_index\":290,\"name\":{\"406\":{}},\"comment\":{}}],[\"reset\",{\"_index\":258,\"name\":{\"367\":{}},\"comment\":{}}],[\"root\",{\"_index\":13,\"name\":{\"13\":{},\"36\":{}},\"comment\":{}}],[\"rv\",{\"_index\":222,\"name\":{\"309\":{}},\"comment\":{}}],[\"secret\",{\"_index\":6,\"name\":{\"6\":{},\"29\":{},\"47\":{}},\"comment\":{}}],[\"servicefeepercent\",{\"_index\":66,\"name\":{\"92\":{},\"208\":{},\"333\":{}},\"comment\":{}}],[\"setup\",{\"_index\":38,\"name\":{\"50\":{}},\"comment\":{}}],[\"signer\",{\"_index\":191,\"name\":{\"271\":{}},\"comment\":{}}],[\"simplemutex\",{\"_index\":262,\"name\":{\"371\":{}},\"comment\":{}}],[\"startblock\",{\"_index\":173,\"name\":{\"251\":{}},\"comment\":{}}],[\"status\",{\"_index\":68,\"name\":{\"94\":{},\"210\":{},\"335\":{}},\"comment\":{}}],[\"stripextensions\",{\"_index\":78,\"name\":{\"104\":{}},\"comment\":{}}],[\"success\",{\"_index\":216,\"name\":{\"303\":{}},\"comment\":{}}],[\"swap\",{\"_index\":275,\"name\":{\"385\":{}},\"comment\":{}}],[\"symbol\",{\"_index\":53,\"name\":{\"67\":{},\"75\":{},\"273\":{}},\"comment\":{}}],[\"sync\",{\"_index\":172,\"name\":{\"250\":{},\"292\":{},\"402\":{},\"488\":{}},\"comment\":{}}],[\"syncable\",{\"_index\":164,\"name\":{\"230\":{}},\"comment\":{}}],[\"syncdeposits\",{\"_index\":316,\"name\":{\"471\":{}},\"comment\":{}}],[\"syncerrorhandler\",{\"_index\":170,\"name\":{\"247\":{}},\"comment\":{}}],[\"synchronizer\",{\"_index\":207,\"name\":{\"289\":{}},\"comment\":{}}],[\"syncwithdrawals\",{\"_index\":317,\"name\":{\"472\":{}},\"comment\":{}}],[\"targetblock\",{\"_index\":174,\"name\":{\"252\":{}},\"comment\":{}}],[\"terminategroth16\",{\"_index\":44,\"name\":{\"56\":{}},\"comment\":{}}],[\"throwerror\",{\"_index\":98,\"name\":{\"125\":{}},\"comment\":{}}],[\"timeout\",{\"_index\":243,\"name\":{\"348\":{}},\"comment\":{}}],[\"timestamp\",{\"_index\":146,\"name\":{\"176\":{}},\"comment\":{}}],[\"to\",{\"_index\":148,\"name\":{\"182\":{}},\"comment\":{}}],[\"token\",{\"_index\":63,\"name\":{\"87\":{},\"191\":{},\"199\":{}},\"comment\":{}}],[\"tokendata\",{\"_index\":60,\"name\":{\"80\":{}},\"comment\":{}}],[\"tokendecimals\",{\"_index\":284,\"name\":{\"397\":{}},\"comment\":{}}],[\"tomap\",{\"_index\":95,\"name\":{\"122\":{}},\"comment\":{}}],[\"torhttpclient\",{\"_index\":224,\"name\":{\"312\":{}},\"comment\":{}}],[\"tornadocontracts\",{\"_index\":171,\"name\":{\"248\":{}},\"comment\":{}}],[\"tornadoinstance\",{\"_index\":51,\"name\":{\"65\":{}},\"comment\":{}}],[\"torprovider\",{\"_index\":223,\"name\":{\"310\":{}},\"comment\":{}}],[\"totaladded\",{\"_index\":253,\"name\":{\"362\":{}},\"comment\":{}}],[\"transactionhash\",{\"_index\":145,\"name\":{\"175\":{},\"184\":{}},\"comment\":{}}],[\"transactions\",{\"_index\":289,\"name\":{\"404\":{}},\"comment\":{}}],[\"tree\",{\"_index\":29,\"name\":{\"37\":{}},\"comment\":{}}],[\"txhash\",{\"_index\":217,\"name\":{\"304\":{}},\"comment\":{}}],[\"url\",{\"_index\":213,\"name\":{\"300\":{},\"319\":{}},\"comment\":{}}],[\"utils\",{\"_index\":239,\"name\":{\"343\":{}},\"comment\":{}}],[\"version\",{\"_index\":65,\"name\":{\"91\":{},\"207\":{},\"332\":{}},\"comment\":{}}],[\"web\",{\"_index\":212,\"name\":{\"297\":{}},\"comment\":{}}],[\"wipecache\",{\"_index\":81,\"name\":{\"107\":{}},\"comment\":{}}],[\"withdrawal\",{\"_index\":147,\"name\":{\"179\":{}},\"comment\":{}}],[\"withdrawalcache\",{\"_index\":292,\"name\":{\"426\":{}},\"comment\":{}}],[\"withdrawalrequestresult\",{\"_index\":215,\"name\":{\"302\":{}},\"comment\":{}}],[\"writeraw\",{\"_index\":90,\"name\":{\"117\":{}},\"comment\":{}}],[\"writerawsync\",{\"_index\":91,\"name\":{\"118\":{}},\"comment\":{}}],[\"zip\",{\"_index\":158,\"name\":{\"224\":{},\"242\":{},\"422\":{},\"438\":{}},\"comment\":{}}]],\"pipeline\":[]}}"); \ No newline at end of file diff --git a/docs/api/classes/Core.html b/docs/api/classes/Core.html index c71d838..68d2402 100644 --- a/docs/api/classes/Core.html +++ b/docs/api/classes/Core.html @@ -22,7 +22,7 @@
  • Core
+
  • Defined in @tornado/sdk-core/dist/index.d.ts:51
  • @@ -78,7 +78,7 @@ getInstance getInstances getMaxListeners -getProxy +getRouter listenForDeposits listenForEvents listenForInstanceEvents @@ -122,29 +122,29 @@

    Returns Core

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:57
  • Properties

    _backupDepositData: any
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:116
  • _calcWithdrawalFee: any
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:76
  • _chain?: any
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:53
  • _checkProvider: any
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:58
  • _findLeavesAndIndices: any
    @@ -156,43 +156,43 @@

    Returns

    The result of concatenating the array of leaf indices found by matching them with the provided commitment values, followed by the array of all leaf indices, including all of the formerly mentioned values given that they are valid. Values which have not been matched, meaning probably invalid values, will be 0.

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:82
  • _instanceEventToFilter: any
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:91
  • _invoices?: any
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:55
  • _mutex: any
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:52
  • _notes?: any
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:54
  • _resolveInstance: any
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:93
  • _resolveInstanceEvent: any
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:92
  • caches: Map<string, Syncable<Data.Docs.Base>>
    +
  • Defined in @tornado/sdk-chain/dist/index.d.ts:63
  • captureRejectionSymbol: typeof captureRejectionSymbol
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:56
  • Methods

    @@ -251,7 +251,7 @@ regular 'error' listener is installed.

    Returns Promise<{
        blockDelta: number;
        blockDivisor: number;
        concurrencyLimit: number;
        listenForEvents: boolean;
        msTimeout: number;
        startBlock: number;
        targetBlock: number;
    }>

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:111
    • @@ -299,7 +299,7 @@ regular 'error' listener is installed.

      Optional options: Data.Options.Cache

    Returns Promise<void>

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:113
    • @@ -316,7 +316,7 @@ regular 'error' listener is installed.

      Optional options: Data.Options.Cache

    Returns Promise<void>

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:115
    • @@ -333,7 +333,7 @@ regular 'error' listener is installed.

      Optional options: Data.Options.Cache

    Returns Promise<void>

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:112
    • @@ -350,7 +350,7 @@ regular 'error' listener is installed.

      Optional options: Data.Options.Cache

    Returns Promise<void>

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:114
    • @@ -367,7 +367,7 @@ regular 'error' listener is installed.

      Optional listenerIndex: number

    Returns void

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:86
    • @@ -385,7 +385,7 @@ regular 'error' listener is installed.

      Returns void

    +
  • Defined in @tornado/sdk-chain/dist/index.d.ts:68
    • @@ -398,7 +398,7 @@ regular 'error' listener is installed.

      instance: string | TornadoInstance

    Returns void

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:87
    • @@ -411,7 +411,7 @@ regular 'error' listener is installed.

      provider: Provider

    Returns Promise<void>

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:59
    • @@ -432,7 +432,7 @@ regular 'error' listener is installed.

      Optional options: BuildDepositProof

    Returns Promise<string[]>

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:66
    • @@ -465,7 +465,7 @@ regular 'error' listener is installed.

      Returns Promise<string[][]>

      The proofs for which the user should then decide whether to use a relayer (recommended, but decide carefully which one) or use his own wallet (if needed).

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:75
    • @@ -487,7 +487,7 @@ regular 'error' listener is installed.

      Returns Transactions.Deposit

      A promise which resolves to the created transaction.

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:100
    • @@ -506,12 +506,12 @@ regular 'error' listener is installed.

    • Optional options: Options.Core.Deposit
      -

      The number of deposits per instance, whether or not to populate the transactions (only in the sense of encoding transaction data), and whether to backup notes and invoices. Defaults: depositsPerInstance = [1]*instance_num, doNotPopulate = false, backup { notes = true, invoices = false }

      +

      The number of deposits per instance, whether or not to populate the transactions (only in the sense of encoding transaction data), whether to backup notes and invoices, and whether to call the instance directly instead of the router. Defaults: depositsPerInstance = [1]*instance_num, doNotPopulate = false, callInstanceDirectly = false, backup { notes = true, invoices = false }

    Returns Transactions.Deposit[]

    A promise which resolves to the created transactions.

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:108
    • @@ -520,7 +520,7 @@ regular 'error' listener is installed.

      Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      -
      const EventEmitter = require('events');
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener +
      const EventEmitter = require('events');
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener

      Since

      v0.1.26

      @@ -543,7 +543,7 @@ to each.

    • Returns an array listing the events for which the emitter has registered listeners. The values in the array are strings or Symbols.

      -
      const EventEmitter = require('events');
      const myEE = new EventEmitter();
      myEE.on('foo', () => {});
      myEE.on('bar', () => {});

      const sym = Symbol('symbol');
      myEE.on(sym, () => {});

      console.log(myEE.eventNames());
      // Prints: [ 'foo', 'bar', Symbol(symbol) ] +
      const EventEmitter = require('events');
      const myEE = new EventEmitter();
      myEE.on('foo', () => {});
      myEE.on('bar', () => {});

      const sym = Symbol('symbol');
      myEE.on(sym, () => {});

      console.log(myEE.eventNames());
      // Prints: [ 'foo', 'bar', Symbol(symbol) ]

      Since

      v6.0.0

      @@ -570,7 +570,7 @@ listeners. The values in the array are strings or Symbols.

      Optional options: Data.Options.Cache

    Returns Promise<void>

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:118
    • @@ -589,7 +589,7 @@ listeners. The values in the array are strings or Symbols.

      Optional options: Data.Options.Cache

    Returns Promise<void>

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:117
    • @@ -604,7 +604,7 @@ listeners. The values in the array are strings or Symbols.

      denomination: string | number

    Returns TornadoInstance

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:64
    • @@ -617,7 +617,7 @@ listeners. The values in the array are strings or Symbols.

      keys: {
          denomination: string | number;
          token: string;
      }[]

    Returns TornadoInstance[]

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:60
    • @@ -632,14 +632,14 @@ set by emitter.setMaxListeners(n) or defaults to Synchronizer.getMaxListeners

      • Defined in .yarn/cache/@types-node-npm-18.16.2-81a2b61beb-7ad66d23b3.zip/node_modules/@types/node/events.d.ts:526
    -
    - +
    +
      - +
    • -

      Returns TornadoProxy

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:65
  • Returns void

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:88
  • +
  • Defined in @tornado/sdk-chain/dist/index.d.ts:67
  • Returns void

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:90
  • Returns void

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:89
    • @@ -733,7 +733,7 @@ is found in the list of the listeners of the event.

    • Returns a copy of the array of listeners for the event named eventName.

      -
      server.on('connection', (stream) => {
      console.log('someone connected!');
      });
      console.log(util.inspect(server.listeners('connection')));
      // Prints: [ [Function] ] +
      server.on('connection', (stream) => {
      console.log('someone connected!');
      });
      console.log(util.inspect(server.listeners('connection')));
      // Prints: [ [Function] ]

      Since

      v0.1.26

      @@ -769,7 +769,7 @@ is found in the list of the listeners of the event.

      Returns C

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:123
    • @@ -784,7 +784,7 @@ is found in the list of the listeners of the event.

      Optional options: Data.Options.Cache

    Returns DepositCache

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:121
    • @@ -801,7 +801,7 @@ is found in the list of the listeners of the event.

      denomination: string | number

    Returns TornadoInstance

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:124
    • @@ -814,7 +814,7 @@ is found in the list of the listeners of the event.

      Optional options: Data.Options.Cache

    Returns Data.Cache.Base<Data.Docs.Invoice>

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:120
    • @@ -831,7 +831,7 @@ is found in the list of the listeners of the event.

      Optional options: Data.Options.Cache

    Returns Promise<Crypto.OutputOf.CreateDeposit[]>

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:83
    • @@ -844,7 +844,7 @@ is found in the list of the listeners of the event.

      Optional options: Data.Options.Cache

    Returns Data.Cache.Base<Note>

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:119
    • @@ -859,7 +859,7 @@ is found in the list of the listeners of the event.

      Optional options: Data.Options.Cache

    Returns WithdrawalCache

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:122
    • @@ -900,12 +900,12 @@ is found in the list of the listeners of the event.

      event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple times.

      -
      server.on('connection', (stream) => {
      console.log('someone connected!');
      }); +
      server.on('connection', (stream) => {
      console.log('someone connected!');
      });

      Returns a reference to the EventEmitter, so that calls can be chained.

      By default, event listeners are invoked in the order they are added. Theemitter.prependListener() method can be used as an alternative to add the event listener to the beginning of the listeners array.

      -
      const myEE = new EventEmitter();
      myEE.on('foo', () => console.log('a'));
      myEE.prependListener('foo', () => console.log('b'));
      myEE.emit('foo');
      // Prints:
      // b
      // a +
      const myEE = new EventEmitter();
      myEE.on('foo', () => console.log('a'));
      myEE.prependListener('foo', () => console.log('b'));
      myEE.emit('foo');
      // Prints:
      // b
      // a

      Since

      v0.1.101

      @@ -943,12 +943,12 @@ event listener to the beginning of the listeners array.

    • Adds a one-timelistener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

      -
      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      }); +
      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });

      Returns a reference to the EventEmitter, so that calls can be chained.

      By default, event listeners are invoked in the order they are added. Theemitter.prependOnceListener() method can be used as an alternative to add the event listener to the beginning of the listeners array.

      -
      const myEE = new EventEmitter();
      myEE.once('foo', () => console.log('a'));
      myEE.prependOnceListener('foo', () => console.log('b'));
      myEE.emit('foo');
      // Prints:
      // b
      // a +
      const myEE = new EventEmitter();
      myEE.once('foo', () => console.log('a'));
      myEE.prependOnceListener('foo', () => console.log('b'));
      myEE.emit('foo');
      // Prints:
      // b
      // a

      Since

      v0.3.0

      @@ -991,7 +991,7 @@ event listener to the beginning of the listeners array.

      note: string

    Returns Crypto.OutputOf.CreateDeposit

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:85
    • @@ -1004,7 +1004,7 @@ event listener to the beginning of the listeners array.

      notes: string[]

    Returns Crypto.OutputOf.CreateDeposit[]

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:84
    • @@ -1014,7 +1014,7 @@ event listener to the beginning of the listeners array.

      event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple times.

      -
      server.prependListener('connection', (stream) => {
      console.log('someone connected!');
      }); +
      server.prependListener('connection', (stream) => {
      console.log('someone connected!');
      });

      Returns a reference to the EventEmitter, so that calls can be chained.

      @@ -1053,7 +1053,7 @@ times.

    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

      -
      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      }); +
      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });

      Returns a reference to the EventEmitter, so that calls can be chained.

      @@ -1092,7 +1092,7 @@ listener is removed, and then invoked.

    • Returns a copy of the array of listeners for the event named eventName, including any wrappers (such as those created by .once()).

      -
      const emitter = new EventEmitter();
      emitter.once('log', () => console.log('log once'));

      // Returns a new Array with a function `onceWrapper` which has a property
      // `listener` which contains the original listener bound above
      const listeners = emitter.rawListeners('log');
      const logFnWrapper = listeners[0];

      // Logs "log once" to the console and does not unbind the `once` event
      logFnWrapper.listener();

      // Logs "log once" to the console and removes the listener
      logFnWrapper();

      emitter.on('log', () => console.log('log persistently'));
      // Will return a new Array with a single function bound by `.on()` above
      const newListeners = emitter.rawListeners('log');

      // Logs "log persistently" twice
      newListeners[0]();
      emitter.emit('log'); +
      const emitter = new EventEmitter();
      emitter.once('log', () => console.log('log once'));

      // Returns a new Array with a function `onceWrapper` which has a property
      // `listener` which contains the original listener bound above
      const listeners = emitter.rawListeners('log');
      const logFnWrapper = listeners[0];

      // Logs "log once" to the console and does not unbind the `once` event
      logFnWrapper.listener();

      // Logs "log once" to the console and removes the listener
      logFnWrapper();

      emitter.on('log', () => console.log('log persistently'));
      // Will return a new Array with a single function bound by `.on()` above
      const newListeners = emitter.rawListeners('log');

      // Logs "log persistently" twice
      newListeners[0]();
      emitter.emit('log');

      Since

      v9.4.0

      @@ -1134,7 +1134,7 @@ component or module (e.g. sockets or file streams).

    • Removes the specified listener from the listener array for the event namedeventName.

      -
      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback); +
      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback);

      removeListener() will remove, at most, one instance of a listener from the listener array. If any single listener has been added multiple times to the @@ -1143,7 +1143,7 @@ called multiple times to remove each instance.

      Once an event is emitted, all listeners attached to it at the time of emitting are called in order. This implies that anyremoveListener() or removeAllListeners() calls after emitting and before the last listener finishes execution will not remove them fromemit() in progress. Subsequent events behave as expected.

      -
      const myEmitter = new MyEmitter();

      const callbackA = () => {
      console.log('A');
      myEmitter.removeListener('event', callbackB);
      };

      const callbackB = () => {
      console.log('B');
      };

      myEmitter.on('event', callbackA);

      myEmitter.on('event', callbackB);

      // callbackA removes listener callbackB but it will still be called.
      // Internal listener array at time of emit [callbackA, callbackB]
      myEmitter.emit('event');
      // Prints:
      // A
      // B

      // callbackB is now removed.
      // Internal listener array [callbackA]
      myEmitter.emit('event');
      // Prints:
      // A +
      const myEmitter = new MyEmitter();

      const callbackA = () => {
      console.log('A');
      myEmitter.removeListener('event', callbackB);
      };

      const callbackB = () => {
      console.log('B');
      };

      myEmitter.on('event', callbackA);

      myEmitter.on('event', callbackB);

      // callbackA removes listener callbackB but it will still be called.
      // Internal listener array at time of emit [callbackA, callbackB]
      myEmitter.emit('event');
      // Prints:
      // A
      // B

      // callbackB is now removed.
      // Internal listener array [callbackA]
      myEmitter.emit('event');
      // Prints:
      // A

      Because listeners are managed using an internal array, calling this will change the position indices of any listener registered after the listener @@ -1153,7 +1153,7 @@ the emitter.listeners() method will need to be recreated.

      When a single function has been added as a handler multiple times for a single event (as in the example below), removeListener() will remove the most recently added instance. In the example the once('ping')listener is removed:

      -
      const ee = new EventEmitter();

      function pong() {
      console.log('pong');
      }

      ee.on('ping', pong);
      ee.once('ping', pong);
      ee.removeListener('ping', pong);

      ee.emit('ping');
      ee.emit('ping'); +
      const ee = new EventEmitter();

      function pong() {
      console.log('pong');
      }

      ee.on('ping', pong);
      ee.once('ping', pong);
      ee.removeListener('ping', pong);

      ee.emit('ping');
      ee.emit('ping');

      Returns a reference to the EventEmitter, so that calls can be chained.

      @@ -1224,7 +1224,7 @@ modified for this specific EventEmitter instance. The value can be

      Returns Promise<void>

    +
  • Defined in @tornado/sdk-chain/dist/index.d.ts:65
  • Returns Promise<void>

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:109
  • Returns Promise<void>

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:110
    • @@ -1265,7 +1265,7 @@ modified for this specific EventEmitter instance. The value can be the emitter.

      For EventTargets this is the only way to get the event listeners for the event target. This is useful for debugging and diagnostic purposes.

      -
      const { getEventListeners, EventEmitter } = require('events');

      {
      const ee = new EventEmitter();
      const listener = () => console.log('Events are fun');
      ee.on('foo', listener);
      getEventListeners(ee, 'foo'); // [listener]
      }
      {
      const et = new EventTarget();
      const listener = () => console.log('Events are fun');
      et.addEventListener('foo', listener);
      getEventListeners(et, 'foo'); // [listener]
      } +
      const { getEventListeners, EventEmitter } = require('events');

      {
      const ee = new EventEmitter();
      const listener = () => console.log('Events are fun');
      ee.on('foo', listener);
      getEventListeners(ee, 'foo'); // [listener]
      }
      {
      const et = new EventTarget();
      const listener = () => console.log('Events are fun');
      et.addEventListener('foo', listener);
      getEventListeners(et, 'foo'); // [listener]
      }

      Since

      v15.2.0, v14.17.0

      @@ -1287,7 +1287,7 @@ event target. This is useful for debugging and diagnostic purposes.

    • A class method that returns the number of listeners for the given eventNameregistered on the given emitter.

      -
      const { EventEmitter, listenerCount } = require('events');
      const myEmitter = new EventEmitter();
      myEmitter.on('event', () => {});
      myEmitter.on('event', () => {});
      console.log(listenerCount(myEmitter, 'event'));
      // Prints: 2 +
      const { EventEmitter, listenerCount } = require('events');
      const myEmitter = new EventEmitter();
      myEmitter.on('event', () => {});
      myEmitter.on('event', () => {});
      console.log(listenerCount(myEmitter, 'event'));
      // Prints: 2

      Since

      v0.9.12

      @@ -1314,14 +1314,14 @@ event target. This is useful for debugging and diagnostic purposes.

      • -
        const { on, EventEmitter } = require('events');

        (async () => {
        const ee = new EventEmitter();

        // Emit later on
        process.nextTick(() => {
        ee.emit('foo', 'bar');
        ee.emit('foo', 42);
        });

        for await (const event of on(ee, 'foo')) {
        // The execution of this inner block is synchronous and it
        // processes one event at a time (even with await). Do not use
        // if concurrent execution is required.
        console.log(event); // prints ['bar'] [42]
        }
        // Unreachable here
        })(); +
        const { on, EventEmitter } = require('events');

        (async () => {
        const ee = new EventEmitter();

        // Emit later on
        process.nextTick(() => {
        ee.emit('foo', 'bar');
        ee.emit('foo', 42);
        });

        for await (const event of on(ee, 'foo')) {
        // The execution of this inner block is synchronous and it
        // processes one event at a time (even with await). Do not use
        // if concurrent execution is required.
        console.log(event); // prints ['bar'] [42]
        }
        // Unreachable here
        })();

        Returns an AsyncIterator that iterates eventName events. It will throw if the EventEmitter emits 'error'. It removes all listeners when exiting the loop. The value returned by each iteration is an array composed of the emitted event arguments.

        An AbortSignal can be used to cancel waiting on events:

        -
        const { on, EventEmitter } = require('events');
        const ac = new AbortController();

        (async () => {
        const ee = new EventEmitter();

        // Emit later on
        process.nextTick(() => {
        ee.emit('foo', 'bar');
        ee.emit('foo', 42);
        });

        for await (const event of on(ee, 'foo', { signal: ac.signal })) {
        // The execution of this inner block is synchronous and it
        // processes one event at a time (even with await). Do not use
        // if concurrent execution is required.
        console.log(event); // prints ['bar'] [42]
        }
        // Unreachable here
        })();

        process.nextTick(() => ac.abort()); +
        const { on, EventEmitter } = require('events');
        const ac = new AbortController();

        (async () => {
        const ee = new EventEmitter();

        // Emit later on
        process.nextTick(() => {
        ee.emit('foo', 'bar');
        ee.emit('foo', 42);
        });

        for await (const event of on(ee, 'foo', { signal: ac.signal })) {
        // The execution of this inner block is synchronous and it
        // processes one event at a time (even with await). Do not use
        // if concurrent execution is required.
        console.log(event); // prints ['bar'] [42]
        }
        // Unreachable here
        })();

        process.nextTick(() => ac.abort());

        Since

        v13.6.0, v12.16.0

        @@ -1353,15 +1353,15 @@ The Promise will resolve with an array of all the arguments emitted given event.

        This method is intentionally generic and works with the web platform EventTarget interface, which has no special'error' event semantics and does not listen to the 'error' event.

        -
        const { once, EventEmitter } = require('events');

        async function run() {
        const ee = new EventEmitter();

        process.nextTick(() => {
        ee.emit('myevent', 42);
        });

        const [value] = await once(ee, 'myevent');
        console.log(value);

        const err = new Error('kaboom');
        process.nextTick(() => {
        ee.emit('error', err);
        });

        try {
        await once(ee, 'myevent');
        } catch (err) {
        console.log('error happened', err);
        }
        }

        run(); +
        const { once, EventEmitter } = require('events');

        async function run() {
        const ee = new EventEmitter();

        process.nextTick(() => {
        ee.emit('myevent', 42);
        });

        const [value] = await once(ee, 'myevent');
        console.log(value);

        const err = new Error('kaboom');
        process.nextTick(() => {
        ee.emit('error', err);
        });

        try {
        await once(ee, 'myevent');
        } catch (err) {
        console.log('error happened', err);
        }
        }

        run();

        The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the 'error' event itself, then it is treated as any other kind of event without special handling:

        -
        const { EventEmitter, once } = require('events');

        const ee = new EventEmitter();

        once(ee, 'error')
        .then(([err]) => console.log('ok', err.message))
        .catch((err) => console.log('error', err.message));

        ee.emit('error', new Error('boom'));

        // Prints: ok boom +
        const { EventEmitter, once } = require('events');

        const ee = new EventEmitter();

        once(ee, 'error')
        .then(([err]) => console.log('ok', err.message))
        .catch((err) => console.log('error', err.message));

        ee.emit('error', new Error('boom'));

        // Prints: ok boom

        An AbortSignal can be used to cancel waiting for the event:

        -
        const { EventEmitter, once } = require('events');

        const ee = new EventEmitter();
        const ac = new AbortController();

        async function foo(emitter, event, signal) {
        try {
        await once(emitter, event, { signal });
        console.log('event emitted!');
        } catch (error) {
        if (error.name === 'AbortError') {
        console.error('Waiting for the event was canceled!');
        } else {
        console.error('There was an error', error.message);
        }
        }
        }

        foo(ee, 'foo', ac.signal);
        ac.abort(); // Abort waiting for the event
        ee.emit('foo'); // Prints: Waiting for the event was canceled! +
        const { EventEmitter, once } = require('events');

        const ee = new EventEmitter();
        const ac = new AbortController();

        async function foo(emitter, event, signal) {
        try {
        await once(emitter, event, { signal });
        console.log('event emitted!');
        } catch (error) {
        if (error.name === 'AbortError') {
        console.error('Waiting for the event was canceled!');
        } else {
        console.error('There was an error', error.message);
        }
        }
        }

        foo(ee, 'foo', ac.signal);
        ac.abort(); // Abort waiting for the event
        ee.emit('foo'); // Prints: Waiting for the event was canceled!

        Since

        v11.13.0, v10.16.0

        @@ -1399,7 +1399,7 @@ special handling:

      • diff --git a/docs/api/classes/Data.Cache.Base.html b/docs/api/classes/Data.Cache.Base.html index 1f076be..f0a4246 100644 --- a/docs/api/classes/Data.Cache.Base.html +++ b/docs/api/classes/Data.Cache.Base.html @@ -387,6 +387,7 @@
      • getInstance
      • getProxy
      • getRegistry
      • +
      • getRouter
      • getToken
      • getTornToken
    • diff --git a/docs/api/classes/Data.Cache.Syncable.html b/docs/api/classes/Data.Cache.Syncable.html index 3be7ed5..8f6412f 100644 --- a/docs/api/classes/Data.Cache.Syncable.html +++ b/docs/api/classes/Data.Cache.Syncable.html @@ -450,6 +450,7 @@
    • getInstance
    • getProxy
    • getRegistry
    • +
    • getRouter
    • getToken
    • getTornToken
  • diff --git a/docs/api/classes/Data.Docs.Base.html b/docs/api/classes/Data.Docs.Base.html index abd7dd5..cbb6dd1 100644 --- a/docs/api/classes/Data.Docs.Base.html +++ b/docs/api/classes/Data.Docs.Base.html @@ -262,6 +262,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/classes/Data.Docs.Deposit.html b/docs/api/classes/Data.Docs.Deposit.html index 6638ff1..315c601 100644 --- a/docs/api/classes/Data.Docs.Deposit.html +++ b/docs/api/classes/Data.Docs.Deposit.html @@ -296,6 +296,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/classes/Data.Docs.Invoice.html b/docs/api/classes/Data.Docs.Invoice.html index 7cde0c0..5c74f60 100644 --- a/docs/api/classes/Data.Docs.Invoice.html +++ b/docs/api/classes/Data.Docs.Invoice.html @@ -297,6 +297,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/classes/Data.Docs.Note.html b/docs/api/classes/Data.Docs.Note.html index ecf5549..ef0c10f 100644 --- a/docs/api/classes/Data.Docs.Note.html +++ b/docs/api/classes/Data.Docs.Note.html @@ -297,6 +297,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/classes/Data.Docs.Relayer.html b/docs/api/classes/Data.Docs.Relayer.html index 6be02fa..6fb4315 100644 --- a/docs/api/classes/Data.Docs.Relayer.html +++ b/docs/api/classes/Data.Docs.Relayer.html @@ -312,6 +312,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/classes/Data.Docs.Withdrawal.html b/docs/api/classes/Data.Docs.Withdrawal.html index a817b92..0a09ead 100644 --- a/docs/api/classes/Data.Docs.Withdrawal.html +++ b/docs/api/classes/Data.Docs.Withdrawal.html @@ -296,6 +296,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/classes/DepositCache.html b/docs/api/classes/DepositCache.html index 81194fa..1c237c3 100644 --- a/docs/api/classes/DepositCache.html +++ b/docs/api/classes/DepositCache.html @@ -22,7 +22,7 @@
    • DepositCache
  • +
  • Defined in @tornado/sdk-core/dist/index.d.ts:39
  • @@ -111,7 +111,7 @@

    Returns Data.Docs.Deposit

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:40
  • +
  • Defined in @tornado/sdk-core/dist/index.d.ts:42
  • +
  • Defined in @tornado/sdk-core/dist/index.d.ts:41
  • diff --git a/docs/api/classes/Network.Chain.html b/docs/api/classes/Network.Chain.html index 882d517..04c2e7c 100644 --- a/docs/api/classes/Network.Chain.html +++ b/docs/api/classes/Network.Chain.html @@ -482,6 +482,7 @@ handles such interactions.

  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/classes/Network.Synchronizer.html b/docs/api/classes/Network.Synchronizer.html index fd78896..8de3a85 100644 --- a/docs/api/classes/Network.Synchronizer.html +++ b/docs/api/classes/Network.Synchronizer.html @@ -25,7 +25,7 @@
  • +
  • Defined in @tornado/sdk-chain/dist/index.d.ts:62
  • @@ -81,14 +81,14 @@

    Returns Synchronizer

    +
  • Defined in @tornado/sdk-chain/dist/index.d.ts:64
  • Properties

    caches: Map<string, Syncable<Data.Docs.Base>>
    +
  • Defined in @tornado/sdk-chain/dist/index.d.ts:63
  • captureRejectionSymbol: typeof captureRejectionSymbol
    +
  • Defined in @tornado/sdk-chain/dist/index.d.ts:69
    • @@ -184,7 +184,7 @@ regular 'error' listener is installed.

      Optional listenerIndex: number

    Returns void

    +
  • Defined in @tornado/sdk-chain/dist/index.d.ts:68
    • @@ -193,7 +193,7 @@ regular 'error' listener is installed.

      Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      -
      const EventEmitter = require('events');
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener +
      const EventEmitter = require('events');
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener

      Since

      v0.1.26

      @@ -216,7 +216,7 @@ to each.

    • Returns an array listing the events for which the emitter has registered listeners. The values in the array are strings or Symbols.

      -
      const EventEmitter = require('events');
      const myEE = new EventEmitter();
      myEE.on('foo', () => {});
      myEE.on('bar', () => {});

      const sym = Symbol('symbol');
      myEE.on(sym, () => {});

      console.log(myEE.eventNames());
      // Prints: [ 'foo', 'bar', Symbol(symbol) ] +
      const EventEmitter = require('events');
      const myEE = new EventEmitter();
      myEE.on('foo', () => {});
      myEE.on('bar', () => {});

      const sym = Symbol('symbol');
      myEE.on(sym, () => {});

      console.log(myEE.eventNames());
      // Prints: [ 'foo', 'bar', Symbol(symbol) ]

      Since

      v6.0.0

      @@ -257,7 +257,7 @@ set by emitter.setMaxListeners(n) or defaults to cache: Syncable<Data.Docs.Base>

    Returns void

    +
  • Defined in @tornado/sdk-chain/dist/index.d.ts:67
    • @@ -290,7 +290,7 @@ is found in the list of the listeners of the event.

    • Returns a copy of the array of listeners for the event named eventName.

      -
      server.on('connection', (stream) => {
      console.log('someone connected!');
      });
      console.log(util.inspect(server.listeners('connection')));
      // Prints: [ [Function] ] +
      server.on('connection', (stream) => {
      console.log('someone connected!');
      });
      console.log(util.inspect(server.listeners('connection')));
      // Prints: [ [Function] ]

      Since

      v0.1.26

      @@ -323,7 +323,7 @@ is found in the list of the listeners of the event.

      name: string

    Returns C

    +
  • Defined in @tornado/sdk-chain/dist/index.d.ts:66
    • @@ -364,12 +364,12 @@ is found in the list of the listeners of the event.

      event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple times.

      -
      server.on('connection', (stream) => {
      console.log('someone connected!');
      }); +
      server.on('connection', (stream) => {
      console.log('someone connected!');
      });

      Returns a reference to the EventEmitter, so that calls can be chained.

      By default, event listeners are invoked in the order they are added. Theemitter.prependListener() method can be used as an alternative to add the event listener to the beginning of the listeners array.

      -
      const myEE = new EventEmitter();
      myEE.on('foo', () => console.log('a'));
      myEE.prependListener('foo', () => console.log('b'));
      myEE.emit('foo');
      // Prints:
      // b
      // a +
      const myEE = new EventEmitter();
      myEE.on('foo', () => console.log('a'));
      myEE.prependListener('foo', () => console.log('b'));
      myEE.emit('foo');
      // Prints:
      // b
      // a

      Since

      v0.1.101

      @@ -407,12 +407,12 @@ event listener to the beginning of the listeners array.

    • Adds a one-timelistener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

      -
      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      }); +
      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });

      Returns a reference to the EventEmitter, so that calls can be chained.

      By default, event listeners are invoked in the order they are added. Theemitter.prependOnceListener() method can be used as an alternative to add the event listener to the beginning of the listeners array.

      -
      const myEE = new EventEmitter();
      myEE.once('foo', () => console.log('a'));
      myEE.prependOnceListener('foo', () => console.log('b'));
      myEE.emit('foo');
      // Prints:
      // b
      // a +
      const myEE = new EventEmitter();
      myEE.once('foo', () => console.log('a'));
      myEE.prependOnceListener('foo', () => console.log('b'));
      myEE.emit('foo');
      // Prints:
      // b
      // a

      Since

      v0.3.0

      @@ -452,7 +452,7 @@ event listener to the beginning of the listeners array.

      event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple times.

      -
      server.prependListener('connection', (stream) => {
      console.log('someone connected!');
      }); +
      server.prependListener('connection', (stream) => {
      console.log('someone connected!');
      });

      Returns a reference to the EventEmitter, so that calls can be chained.

      @@ -491,7 +491,7 @@ times.

    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

      -
      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      }); +
      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });

      Returns a reference to the EventEmitter, so that calls can be chained.

      @@ -530,7 +530,7 @@ listener is removed, and then invoked.

    • Returns a copy of the array of listeners for the event named eventName, including any wrappers (such as those created by .once()).

      -
      const emitter = new EventEmitter();
      emitter.once('log', () => console.log('log once'));

      // Returns a new Array with a function `onceWrapper` which has a property
      // `listener` which contains the original listener bound above
      const listeners = emitter.rawListeners('log');
      const logFnWrapper = listeners[0];

      // Logs "log once" to the console and does not unbind the `once` event
      logFnWrapper.listener();

      // Logs "log once" to the console and removes the listener
      logFnWrapper();

      emitter.on('log', () => console.log('log persistently'));
      // Will return a new Array with a single function bound by `.on()` above
      const newListeners = emitter.rawListeners('log');

      // Logs "log persistently" twice
      newListeners[0]();
      emitter.emit('log'); +
      const emitter = new EventEmitter();
      emitter.once('log', () => console.log('log once'));

      // Returns a new Array with a function `onceWrapper` which has a property
      // `listener` which contains the original listener bound above
      const listeners = emitter.rawListeners('log');
      const logFnWrapper = listeners[0];

      // Logs "log once" to the console and does not unbind the `once` event
      logFnWrapper.listener();

      // Logs "log once" to the console and removes the listener
      logFnWrapper();

      emitter.on('log', () => console.log('log persistently'));
      // Will return a new Array with a single function bound by `.on()` above
      const newListeners = emitter.rawListeners('log');

      // Logs "log persistently" twice
      newListeners[0]();
      emitter.emit('log');

      Since

      v9.4.0

      @@ -572,7 +572,7 @@ component or module (e.g. sockets or file streams).

    • Removes the specified listener from the listener array for the event namedeventName.

      -
      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback); +
      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback);

      removeListener() will remove, at most, one instance of a listener from the listener array. If any single listener has been added multiple times to the @@ -581,7 +581,7 @@ called multiple times to remove each instance.

      Once an event is emitted, all listeners attached to it at the time of emitting are called in order. This implies that anyremoveListener() or removeAllListeners() calls after emitting and before the last listener finishes execution will not remove them fromemit() in progress. Subsequent events behave as expected.

      -
      const myEmitter = new MyEmitter();

      const callbackA = () => {
      console.log('A');
      myEmitter.removeListener('event', callbackB);
      };

      const callbackB = () => {
      console.log('B');
      };

      myEmitter.on('event', callbackA);

      myEmitter.on('event', callbackB);

      // callbackA removes listener callbackB but it will still be called.
      // Internal listener array at time of emit [callbackA, callbackB]
      myEmitter.emit('event');
      // Prints:
      // A
      // B

      // callbackB is now removed.
      // Internal listener array [callbackA]
      myEmitter.emit('event');
      // Prints:
      // A +
      const myEmitter = new MyEmitter();

      const callbackA = () => {
      console.log('A');
      myEmitter.removeListener('event', callbackB);
      };

      const callbackB = () => {
      console.log('B');
      };

      myEmitter.on('event', callbackA);

      myEmitter.on('event', callbackB);

      // callbackA removes listener callbackB but it will still be called.
      // Internal listener array at time of emit [callbackA, callbackB]
      myEmitter.emit('event');
      // Prints:
      // A
      // B

      // callbackB is now removed.
      // Internal listener array [callbackA]
      myEmitter.emit('event');
      // Prints:
      // A

      Because listeners are managed using an internal array, calling this will change the position indices of any listener registered after the listener @@ -591,7 +591,7 @@ the emitter.listeners() method will need to be recreated.

      When a single function has been added as a handler multiple times for a single event (as in the example below), removeListener() will remove the most recently added instance. In the example the once('ping')listener is removed:

      -
      const ee = new EventEmitter();

      function pong() {
      console.log('pong');
      }

      ee.on('ping', pong);
      ee.once('ping', pong);
      ee.removeListener('ping', pong);

      ee.emit('ping');
      ee.emit('ping'); +
      const ee = new EventEmitter();

      function pong() {
      console.log('pong');
      }

      ee.on('ping', pong);
      ee.once('ping', pong);
      ee.removeListener('ping', pong);

      ee.emit('ping');
      ee.emit('ping');

      Returns a reference to the EventEmitter, so that calls can be chained.

      @@ -661,7 +661,7 @@ modified for this specific EventEmitter instance. The value can be
      Optional options: Network.Options.Sync

    Returns Promise<void>

    +
  • Defined in @tornado/sdk-chain/dist/index.d.ts:65
    • @@ -672,7 +672,7 @@ modified for this specific EventEmitter instance. The value can be the emitter.

      For EventTargets this is the only way to get the event listeners for the event target. This is useful for debugging and diagnostic purposes.

      -
      const { getEventListeners, EventEmitter } = require('events');

      {
      const ee = new EventEmitter();
      const listener = () => console.log('Events are fun');
      ee.on('foo', listener);
      getEventListeners(ee, 'foo'); // [listener]
      }
      {
      const et = new EventTarget();
      const listener = () => console.log('Events are fun');
      et.addEventListener('foo', listener);
      getEventListeners(et, 'foo'); // [listener]
      } +
      const { getEventListeners, EventEmitter } = require('events');

      {
      const ee = new EventEmitter();
      const listener = () => console.log('Events are fun');
      ee.on('foo', listener);
      getEventListeners(ee, 'foo'); // [listener]
      }
      {
      const et = new EventTarget();
      const listener = () => console.log('Events are fun');
      et.addEventListener('foo', listener);
      getEventListeners(et, 'foo'); // [listener]
      }

      Since

      v15.2.0, v14.17.0

      @@ -694,7 +694,7 @@ event target. This is useful for debugging and diagnostic purposes.

    • A class method that returns the number of listeners for the given eventNameregistered on the given emitter.

      -
      const { EventEmitter, listenerCount } = require('events');
      const myEmitter = new EventEmitter();
      myEmitter.on('event', () => {});
      myEmitter.on('event', () => {});
      console.log(listenerCount(myEmitter, 'event'));
      // Prints: 2 +
      const { EventEmitter, listenerCount } = require('events');
      const myEmitter = new EventEmitter();
      myEmitter.on('event', () => {});
      myEmitter.on('event', () => {});
      console.log(listenerCount(myEmitter, 'event'));
      // Prints: 2

      Since

      v0.9.12

      @@ -721,14 +721,14 @@ event target. This is useful for debugging and diagnostic purposes.

      • -
        const { on, EventEmitter } = require('events');

        (async () => {
        const ee = new EventEmitter();

        // Emit later on
        process.nextTick(() => {
        ee.emit('foo', 'bar');
        ee.emit('foo', 42);
        });

        for await (const event of on(ee, 'foo')) {
        // The execution of this inner block is synchronous and it
        // processes one event at a time (even with await). Do not use
        // if concurrent execution is required.
        console.log(event); // prints ['bar'] [42]
        }
        // Unreachable here
        })(); +
        const { on, EventEmitter } = require('events');

        (async () => {
        const ee = new EventEmitter();

        // Emit later on
        process.nextTick(() => {
        ee.emit('foo', 'bar');
        ee.emit('foo', 42);
        });

        for await (const event of on(ee, 'foo')) {
        // The execution of this inner block is synchronous and it
        // processes one event at a time (even with await). Do not use
        // if concurrent execution is required.
        console.log(event); // prints ['bar'] [42]
        }
        // Unreachable here
        })();

        Returns an AsyncIterator that iterates eventName events. It will throw if the EventEmitter emits 'error'. It removes all listeners when exiting the loop. The value returned by each iteration is an array composed of the emitted event arguments.

        An AbortSignal can be used to cancel waiting on events:

        -
        const { on, EventEmitter } = require('events');
        const ac = new AbortController();

        (async () => {
        const ee = new EventEmitter();

        // Emit later on
        process.nextTick(() => {
        ee.emit('foo', 'bar');
        ee.emit('foo', 42);
        });

        for await (const event of on(ee, 'foo', { signal: ac.signal })) {
        // The execution of this inner block is synchronous and it
        // processes one event at a time (even with await). Do not use
        // if concurrent execution is required.
        console.log(event); // prints ['bar'] [42]
        }
        // Unreachable here
        })();

        process.nextTick(() => ac.abort()); +
        const { on, EventEmitter } = require('events');
        const ac = new AbortController();

        (async () => {
        const ee = new EventEmitter();

        // Emit later on
        process.nextTick(() => {
        ee.emit('foo', 'bar');
        ee.emit('foo', 42);
        });

        for await (const event of on(ee, 'foo', { signal: ac.signal })) {
        // The execution of this inner block is synchronous and it
        // processes one event at a time (even with await). Do not use
        // if concurrent execution is required.
        console.log(event); // prints ['bar'] [42]
        }
        // Unreachable here
        })();

        process.nextTick(() => ac.abort());

        Since

        v13.6.0, v12.16.0

        @@ -760,15 +760,15 @@ The Promise will resolve with an array of all the arguments emitted given event.

        This method is intentionally generic and works with the web platform EventTarget interface, which has no special'error' event semantics and does not listen to the 'error' event.

        -
        const { once, EventEmitter } = require('events');

        async function run() {
        const ee = new EventEmitter();

        process.nextTick(() => {
        ee.emit('myevent', 42);
        });

        const [value] = await once(ee, 'myevent');
        console.log(value);

        const err = new Error('kaboom');
        process.nextTick(() => {
        ee.emit('error', err);
        });

        try {
        await once(ee, 'myevent');
        } catch (err) {
        console.log('error happened', err);
        }
        }

        run(); +
        const { once, EventEmitter } = require('events');

        async function run() {
        const ee = new EventEmitter();

        process.nextTick(() => {
        ee.emit('myevent', 42);
        });

        const [value] = await once(ee, 'myevent');
        console.log(value);

        const err = new Error('kaboom');
        process.nextTick(() => {
        ee.emit('error', err);
        });

        try {
        await once(ee, 'myevent');
        } catch (err) {
        console.log('error happened', err);
        }
        }

        run();

        The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the 'error' event itself, then it is treated as any other kind of event without special handling:

        -
        const { EventEmitter, once } = require('events');

        const ee = new EventEmitter();

        once(ee, 'error')
        .then(([err]) => console.log('ok', err.message))
        .catch((err) => console.log('error', err.message));

        ee.emit('error', new Error('boom'));

        // Prints: ok boom +
        const { EventEmitter, once } = require('events');

        const ee = new EventEmitter();

        once(ee, 'error')
        .then(([err]) => console.log('ok', err.message))
        .catch((err) => console.log('error', err.message));

        ee.emit('error', new Error('boom'));

        // Prints: ok boom

        An AbortSignal can be used to cancel waiting for the event:

        -
        const { EventEmitter, once } = require('events');

        const ee = new EventEmitter();
        const ac = new AbortController();

        async function foo(emitter, event, signal) {
        try {
        await once(emitter, event, { signal });
        console.log('event emitted!');
        } catch (error) {
        if (error.name === 'AbortError') {
        console.error('Waiting for the event was canceled!');
        } else {
        console.error('There was an error', error.message);
        }
        }
        }

        foo(ee, 'foo', ac.signal);
        ac.abort(); // Abort waiting for the event
        ee.emit('foo'); // Prints: Waiting for the event was canceled! +
        const { EventEmitter, once } = require('events');

        const ee = new EventEmitter();
        const ac = new AbortController();

        async function foo(emitter, event, signal) {
        try {
        await once(emitter, event, { signal });
        console.log('event emitted!');
        } catch (error) {
        if (error.name === 'AbortError') {
        console.error('Waiting for the event was canceled!');
        } else {
        console.error('There was an error', error.message);
        }
        }
        }

        foo(ee, 'foo', ac.signal);
        ac.abort(); // Abort waiting for the event
        ee.emit('foo'); // Prints: Waiting for the event was canceled!

        Since

        v11.13.0, v10.16.0

        @@ -806,7 +806,7 @@ special handling:

        • -
          const {
          setMaxListeners,
          EventEmitter
          } = require('events');

          const target = new EventTarget();
          const emitter = new EventEmitter();

          setMaxListeners(5, target, emitter); +
          const {
          setMaxListeners,
          EventEmitter
          } = require('events');

          const target = new EventTarget();
          const emitter = new EventEmitter();

          setMaxListeners(5, target, emitter);

          Since

          v15.4.0

          @@ -1044,6 +1044,7 @@ special handling:

        • getInstance
        • getProxy
        • getRegistry
        • +
        • getRouter
        • getToken
        • getTornToken
      • diff --git a/docs/api/classes/Utils.AsyncUtils.PromisePooler.html b/docs/api/classes/Utils.AsyncUtils.PromisePooler.html index 595c638..9c4006b 100644 --- a/docs/api/classes/Utils.AsyncUtils.PromisePooler.html +++ b/docs/api/classes/Utils.AsyncUtils.PromisePooler.html @@ -399,6 +399,7 @@
      • getInstance
      • getProxy
      • getRegistry
      • +
      • getRouter
      • getToken
      • getTornToken
    • diff --git a/docs/api/classes/Utils.AsyncUtils.SimpleMutex.html b/docs/api/classes/Utils.AsyncUtils.SimpleMutex.html index d719308..3197676 100644 --- a/docs/api/classes/Utils.AsyncUtils.SimpleMutex.html +++ b/docs/api/classes/Utils.AsyncUtils.SimpleMutex.html @@ -264,6 +264,7 @@
    • getInstance
    • getProxy
    • getRegistry
    • +
    • getRouter
    • getToken
    • getTornToken
  • diff --git a/docs/api/classes/Web.Relayer.html b/docs/api/classes/Web.Relayer.html index 1251fe7..8f8eb81 100644 --- a/docs/api/classes/Web.Relayer.html +++ b/docs/api/classes/Web.Relayer.html @@ -491,6 +491,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/classes/Web.TorProvider.html b/docs/api/classes/Web.TorProvider.html index 6b0dd00..192d398 100644 --- a/docs/api/classes/Web.TorProvider.html +++ b/docs/api/classes/Web.TorProvider.html @@ -1581,6 +1581,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/classes/WithdrawalCache.html b/docs/api/classes/WithdrawalCache.html index 7f5c88b..ae1b3ce 100644 --- a/docs/api/classes/WithdrawalCache.html +++ b/docs/api/classes/WithdrawalCache.html @@ -22,7 +22,7 @@
    • WithdrawalCache
  • +
  • Defined in @tornado/sdk-core/dist/index.d.ts:44
  • @@ -111,7 +111,7 @@

    Returns Withdrawal

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:45
  • +
  • Defined in @tornado/sdk-core/dist/index.d.ts:47
  • +
  • Defined in @tornado/sdk-core/dist/index.d.ts:46
  • diff --git a/docs/api/functions/Crypto.Primitives.buildMerkleTree.html b/docs/api/functions/Crypto.Primitives.buildMerkleTree.html index e6f1023..bae47bf 100644 --- a/docs/api/functions/Crypto.Primitives.buildMerkleTree.html +++ b/docs/api/functions/Crypto.Primitives.buildMerkleTree.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Crypto.Primitives.calcDepositProofs.html b/docs/api/functions/Crypto.Primitives.calcDepositProofs.html index 4f38ee9..26c12c7 100644 --- a/docs/api/functions/Crypto.Primitives.calcDepositProofs.html +++ b/docs/api/functions/Crypto.Primitives.calcDepositProofs.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Crypto.Primitives.calcPedersenHash.html b/docs/api/functions/Crypto.Primitives.calcPedersenHash.html index cec4472..e53aca9 100644 --- a/docs/api/functions/Crypto.Primitives.calcPedersenHash.html +++ b/docs/api/functions/Crypto.Primitives.calcPedersenHash.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Crypto.Primitives.createDeposit.html b/docs/api/functions/Crypto.Primitives.createDeposit.html index e29d45b..4288514 100644 --- a/docs/api/functions/Crypto.Primitives.createDeposit.html +++ b/docs/api/functions/Crypto.Primitives.createDeposit.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Crypto.Primitives.createNote.html b/docs/api/functions/Crypto.Primitives.createNote.html index 6f75364..a98bd38 100644 --- a/docs/api/functions/Crypto.Primitives.createNote.html +++ b/docs/api/functions/Crypto.Primitives.createNote.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Crypto.Primitives.parseNote.html b/docs/api/functions/Crypto.Primitives.parseNote.html index c8520c6..b931948 100644 --- a/docs/api/functions/Crypto.Primitives.parseNote.html +++ b/docs/api/functions/Crypto.Primitives.parseNote.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Crypto.Setup.getDefaultHash.html b/docs/api/functions/Crypto.Setup.getDefaultHash.html index 1c584bd..011bbfc 100644 --- a/docs/api/functions/Crypto.Setup.getDefaultHash.html +++ b/docs/api/functions/Crypto.Setup.getDefaultHash.html @@ -209,6 +209,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Crypto.Setup.getGroth16.html b/docs/api/functions/Crypto.Setup.getGroth16.html index f52be56..117d950 100644 --- a/docs/api/functions/Crypto.Setup.getGroth16.html +++ b/docs/api/functions/Crypto.Setup.getGroth16.html @@ -209,6 +209,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Crypto.Setup.getProvingKey.html b/docs/api/functions/Crypto.Setup.getProvingKey.html index 28d00f0..668a18e 100644 --- a/docs/api/functions/Crypto.Setup.getProvingKey.html +++ b/docs/api/functions/Crypto.Setup.getProvingKey.html @@ -209,6 +209,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Crypto.Setup.getTornadoCircuit.html b/docs/api/functions/Crypto.Setup.getTornadoCircuit.html index e44e2f2..965bb96 100644 --- a/docs/api/functions/Crypto.Setup.getTornadoCircuit.html +++ b/docs/api/functions/Crypto.Setup.getTornadoCircuit.html @@ -209,6 +209,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Crypto.Setup.getZeroElement.html b/docs/api/functions/Crypto.Setup.getZeroElement.html index 7571b0d..3f555e0 100644 --- a/docs/api/functions/Crypto.Setup.getZeroElement.html +++ b/docs/api/functions/Crypto.Setup.getZeroElement.html @@ -209,6 +209,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Crypto.Setup.terminateGroth16.html b/docs/api/functions/Crypto.Setup.terminateGroth16.html index fccbca8..2f185f9 100644 --- a/docs/api/functions/Crypto.Setup.terminateGroth16.html +++ b/docs/api/functions/Crypto.Setup.terminateGroth16.html @@ -209,6 +209,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Files.cacheDirExists.html b/docs/api/functions/Data.Files.cacheDirExists.html index 41d3d74..cbcd969 100644 --- a/docs/api/functions/Data.Files.cacheDirExists.html +++ b/docs/api/functions/Data.Files.cacheDirExists.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Files.getCachePath.html b/docs/api/functions/Data.Files.getCachePath.html index 54a8816..683070d 100644 --- a/docs/api/functions/Data.Files.getCachePath.html +++ b/docs/api/functions/Data.Files.getCachePath.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Files.getModulesPath.html b/docs/api/functions/Data.Files.getModulesPath.html index 5289d3b..eca8597 100644 --- a/docs/api/functions/Data.Files.getModulesPath.html +++ b/docs/api/functions/Data.Files.getModulesPath.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Files.getResourcePath.html b/docs/api/functions/Data.Files.getResourcePath.html index 696903b..1a3af8a 100644 --- a/docs/api/functions/Data.Files.getResourcePath.html +++ b/docs/api/functions/Data.Files.getResourcePath.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Files.gunzipSync.html b/docs/api/functions/Data.Files.gunzipSync.html index b127977..8c1ec15 100644 --- a/docs/api/functions/Data.Files.gunzipSync.html +++ b/docs/api/functions/Data.Files.gunzipSync.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Files.gzipSync.html b/docs/api/functions/Data.Files.gzipSync.html index a674c9e..41337a6 100644 --- a/docs/api/functions/Data.Files.gzipSync.html +++ b/docs/api/functions/Data.Files.gzipSync.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Files.loadRaw.html b/docs/api/functions/Data.Files.loadRaw.html index b57d4f2..e1594f6 100644 --- a/docs/api/functions/Data.Files.loadRaw.html +++ b/docs/api/functions/Data.Files.loadRaw.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Files.loadRawSync.html b/docs/api/functions/Data.Files.loadRawSync.html index feec8c2..13f8cfd 100644 --- a/docs/api/functions/Data.Files.loadRawSync.html +++ b/docs/api/functions/Data.Files.loadRawSync.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Files.makeCacheDir.html b/docs/api/functions/Data.Files.makeCacheDir.html index 43e7270..db2e174 100644 --- a/docs/api/functions/Data.Files.makeCacheDir.html +++ b/docs/api/functions/Data.Files.makeCacheDir.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Files.parentPath.html b/docs/api/functions/Data.Files.parentPath.html index b86d719..331e85e 100644 --- a/docs/api/functions/Data.Files.parentPath.html +++ b/docs/api/functions/Data.Files.parentPath.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Files.stripExtensions.html b/docs/api/functions/Data.Files.stripExtensions.html index fbfba44..a6a9033 100644 --- a/docs/api/functions/Data.Files.stripExtensions.html +++ b/docs/api/functions/Data.Files.stripExtensions.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Files.wipeCache.html b/docs/api/functions/Data.Files.wipeCache.html index b067287..4010e8a 100644 --- a/docs/api/functions/Data.Files.wipeCache.html +++ b/docs/api/functions/Data.Files.wipeCache.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Files.writeRaw.html b/docs/api/functions/Data.Files.writeRaw.html index 9ec43df..a6f8392 100644 --- a/docs/api/functions/Data.Files.writeRaw.html +++ b/docs/api/functions/Data.Files.writeRaw.html @@ -218,6 +218,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Files.writeRawSync.html b/docs/api/functions/Data.Files.writeRawSync.html index a4a4d05..9f5eef2 100644 --- a/docs/api/functions/Data.Files.writeRawSync.html +++ b/docs/api/functions/Data.Files.writeRawSync.html @@ -218,6 +218,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Json.getError.html b/docs/api/functions/Data.Json.getError.html index a68ab42..cb52bdc 100644 --- a/docs/api/functions/Data.Json.getError.html +++ b/docs/api/functions/Data.Json.getError.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Json.getValue.html b/docs/api/functions/Data.Json.getValue.html index cf269d3..d245479 100644 --- a/docs/api/functions/Data.Json.getValue.html +++ b/docs/api/functions/Data.Json.getValue.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Json.load.html b/docs/api/functions/Data.Json.load.html index 3215e2a..2569836 100644 --- a/docs/api/functions/Data.Json.load.html +++ b/docs/api/functions/Data.Json.load.html @@ -218,6 +218,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Json.loadMap.html b/docs/api/functions/Data.Json.loadMap.html index e1dde88..5148ff8 100644 --- a/docs/api/functions/Data.Json.loadMap.html +++ b/docs/api/functions/Data.Json.loadMap.html @@ -221,6 +221,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Json.loadSync.html b/docs/api/functions/Data.Json.loadSync.html index 4cf0169..03d81e1 100644 --- a/docs/api/functions/Data.Json.loadSync.html +++ b/docs/api/functions/Data.Json.loadSync.html @@ -218,6 +218,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Json.throwError.html b/docs/api/functions/Data.Json.throwError.html index a85c874..7fc4ac8 100644 --- a/docs/api/functions/Data.Json.throwError.html +++ b/docs/api/functions/Data.Json.throwError.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Json.toMap.html b/docs/api/functions/Data.Json.toMap.html index b6d3b41..2cd3108 100644 --- a/docs/api/functions/Data.Json.toMap.html +++ b/docs/api/functions/Data.Json.toMap.html @@ -219,6 +219,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Offchain.getClassicSubgraphURL.html b/docs/api/functions/Data.Offchain.getClassicSubgraphURL.html index 1b38c36..072854a 100644 --- a/docs/api/functions/Data.Offchain.getClassicSubgraphURL.html +++ b/docs/api/functions/Data.Offchain.getClassicSubgraphURL.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Offchain.getClassicSubgraphURLSync.html b/docs/api/functions/Data.Offchain.getClassicSubgraphURLSync.html index 5cc9a64..35e8d6f 100644 --- a/docs/api/functions/Data.Offchain.getClassicSubgraphURLSync.html +++ b/docs/api/functions/Data.Offchain.getClassicSubgraphURLSync.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Offchain.getUncensoredRpcURL.html b/docs/api/functions/Data.Offchain.getUncensoredRpcURL.html index 722805d..c78400b 100644 --- a/docs/api/functions/Data.Offchain.getUncensoredRpcURL.html +++ b/docs/api/functions/Data.Offchain.getUncensoredRpcURL.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Offchain.getUncensoredRpcURLSync.html b/docs/api/functions/Data.Offchain.getUncensoredRpcURLSync.html index c8ee7ab..a8f36f9 100644 --- a/docs/api/functions/Data.Offchain.getUncensoredRpcURLSync.html +++ b/docs/api/functions/Data.Offchain.getUncensoredRpcURLSync.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getClassicInstanceData.html b/docs/api/functions/Data.Onchain.getClassicInstanceData.html index cff52e0..0b23231 100644 --- a/docs/api/functions/Data.Onchain.getClassicInstanceData.html +++ b/docs/api/functions/Data.Onchain.getClassicInstanceData.html @@ -218,6 +218,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getClassicInstanceDataSync.html b/docs/api/functions/Data.Onchain.getClassicInstanceDataSync.html index bcaca4f..fe4015c 100644 --- a/docs/api/functions/Data.Onchain.getClassicInstanceDataSync.html +++ b/docs/api/functions/Data.Onchain.getClassicInstanceDataSync.html @@ -218,6 +218,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getInstanceAddress.html b/docs/api/functions/Data.Onchain.getInstanceAddress.html index 9d306aa..6b4f5ef 100644 --- a/docs/api/functions/Data.Onchain.getInstanceAddress.html +++ b/docs/api/functions/Data.Onchain.getInstanceAddress.html @@ -218,6 +218,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getInstanceAddressSync.html b/docs/api/functions/Data.Onchain.getInstanceAddressSync.html index 3a64840..b05bfff 100644 --- a/docs/api/functions/Data.Onchain.getInstanceAddressSync.html +++ b/docs/api/functions/Data.Onchain.getInstanceAddressSync.html @@ -218,6 +218,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getInstanceAddresses.html b/docs/api/functions/Data.Onchain.getInstanceAddresses.html index a817d05..0063ff1 100644 --- a/docs/api/functions/Data.Onchain.getInstanceAddresses.html +++ b/docs/api/functions/Data.Onchain.getInstanceAddresses.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getInstanceAddressesSync.html b/docs/api/functions/Data.Onchain.getInstanceAddressesSync.html index e9c6c1b..443f773 100644 --- a/docs/api/functions/Data.Onchain.getInstanceAddressesSync.html +++ b/docs/api/functions/Data.Onchain.getInstanceAddressesSync.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getInstanceDeployBlockNum.html b/docs/api/functions/Data.Onchain.getInstanceDeployBlockNum.html index b3cdecb..b274ac3 100644 --- a/docs/api/functions/Data.Onchain.getInstanceDeployBlockNum.html +++ b/docs/api/functions/Data.Onchain.getInstanceDeployBlockNum.html @@ -218,6 +218,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getInstanceDeployBlockNumSync.html b/docs/api/functions/Data.Onchain.getInstanceDeployBlockNumSync.html index 05e02b9..37b8c4c 100644 --- a/docs/api/functions/Data.Onchain.getInstanceDeployBlockNumSync.html +++ b/docs/api/functions/Data.Onchain.getInstanceDeployBlockNumSync.html @@ -218,6 +218,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getInstanceDeployBlockNums.html b/docs/api/functions/Data.Onchain.getInstanceDeployBlockNums.html index f430cb3..834411f 100644 --- a/docs/api/functions/Data.Onchain.getInstanceDeployBlockNums.html +++ b/docs/api/functions/Data.Onchain.getInstanceDeployBlockNums.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getInstanceDeployBlockNumsSync.html b/docs/api/functions/Data.Onchain.getInstanceDeployBlockNumsSync.html index e0b4f6f..39ad691 100644 --- a/docs/api/functions/Data.Onchain.getInstanceDeployBlockNumsSync.html +++ b/docs/api/functions/Data.Onchain.getInstanceDeployBlockNumsSync.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getInstanceLookupKeys.html b/docs/api/functions/Data.Onchain.getInstanceLookupKeys.html index 491b132..57b05d0 100644 --- a/docs/api/functions/Data.Onchain.getInstanceLookupKeys.html +++ b/docs/api/functions/Data.Onchain.getInstanceLookupKeys.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getInstanceLookupKeysSync.html b/docs/api/functions/Data.Onchain.getInstanceLookupKeysSync.html index d42cd16..ed8af2e 100644 --- a/docs/api/functions/Data.Onchain.getInstanceLookupKeysSync.html +++ b/docs/api/functions/Data.Onchain.getInstanceLookupKeysSync.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getMulticall3Address.html b/docs/api/functions/Data.Onchain.getMulticall3Address.html index 6b34884..5950014 100644 --- a/docs/api/functions/Data.Onchain.getMulticall3Address.html +++ b/docs/api/functions/Data.Onchain.getMulticall3Address.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getMulticall3AddressSync.html b/docs/api/functions/Data.Onchain.getMulticall3AddressSync.html index 5aef4e9..5131c9e 100644 --- a/docs/api/functions/Data.Onchain.getMulticall3AddressSync.html +++ b/docs/api/functions/Data.Onchain.getMulticall3AddressSync.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getMulticallAddress.html b/docs/api/functions/Data.Onchain.getMulticallAddress.html index b008d3c..7793b52 100644 --- a/docs/api/functions/Data.Onchain.getMulticallAddress.html +++ b/docs/api/functions/Data.Onchain.getMulticallAddress.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getMulticallAddressSync.html b/docs/api/functions/Data.Onchain.getMulticallAddressSync.html index 64304c4..f789da9 100644 --- a/docs/api/functions/Data.Onchain.getMulticallAddressSync.html +++ b/docs/api/functions/Data.Onchain.getMulticallAddressSync.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getNetworkSymbol.html b/docs/api/functions/Data.Onchain.getNetworkSymbol.html index f5b3d46..b8ad151 100644 --- a/docs/api/functions/Data.Onchain.getNetworkSymbol.html +++ b/docs/api/functions/Data.Onchain.getNetworkSymbol.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getNetworkSymbolSync.html b/docs/api/functions/Data.Onchain.getNetworkSymbolSync.html index 442cfd9..0cc2382 100644 --- a/docs/api/functions/Data.Onchain.getNetworkSymbolSync.html +++ b/docs/api/functions/Data.Onchain.getNetworkSymbolSync.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getPathstringBasedContent.html b/docs/api/functions/Data.Onchain.getPathstringBasedContent.html index 00b77bf..82394ee 100644 --- a/docs/api/functions/Data.Onchain.getPathstringBasedContent.html +++ b/docs/api/functions/Data.Onchain.getPathstringBasedContent.html @@ -221,6 +221,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getPathstringBasedContentSync.html b/docs/api/functions/Data.Onchain.getPathstringBasedContentSync.html index 1ccb05e..9435af5 100644 --- a/docs/api/functions/Data.Onchain.getPathstringBasedContentSync.html +++ b/docs/api/functions/Data.Onchain.getPathstringBasedContentSync.html @@ -221,6 +221,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getProxyAddress.html b/docs/api/functions/Data.Onchain.getProxyAddress.html index 91aedbc..a13312a 100644 --- a/docs/api/functions/Data.Onchain.getProxyAddress.html +++ b/docs/api/functions/Data.Onchain.getProxyAddress.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getProxyAddressSync.html b/docs/api/functions/Data.Onchain.getProxyAddressSync.html index 827bfbf..b210679 100644 --- a/docs/api/functions/Data.Onchain.getProxyAddressSync.html +++ b/docs/api/functions/Data.Onchain.getProxyAddressSync.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getRegistryAddress.html b/docs/api/functions/Data.Onchain.getRegistryAddress.html index e88bf0e..81a991a 100644 --- a/docs/api/functions/Data.Onchain.getRegistryAddress.html +++ b/docs/api/functions/Data.Onchain.getRegistryAddress.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getRegistryAddressSync.html b/docs/api/functions/Data.Onchain.getRegistryAddressSync.html index 4e231d5..a5e86eb 100644 --- a/docs/api/functions/Data.Onchain.getRegistryAddressSync.html +++ b/docs/api/functions/Data.Onchain.getRegistryAddressSync.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getRegistryDeployBlockNum.html b/docs/api/functions/Data.Onchain.getRegistryDeployBlockNum.html index 4b5f1b4..7d9ebef 100644 --- a/docs/api/functions/Data.Onchain.getRegistryDeployBlockNum.html +++ b/docs/api/functions/Data.Onchain.getRegistryDeployBlockNum.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getRegistryDeployBlockNumSync.html b/docs/api/functions/Data.Onchain.getRegistryDeployBlockNumSync.html index 9927700..5ab7216 100644 --- a/docs/api/functions/Data.Onchain.getRegistryDeployBlockNumSync.html +++ b/docs/api/functions/Data.Onchain.getRegistryDeployBlockNumSync.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getTokenAddress.html b/docs/api/functions/Data.Onchain.getTokenAddress.html index 9ae02fb..f99aa46 100644 --- a/docs/api/functions/Data.Onchain.getTokenAddress.html +++ b/docs/api/functions/Data.Onchain.getTokenAddress.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getTokenAddressSync.html b/docs/api/functions/Data.Onchain.getTokenAddressSync.html index 959942d..218fccc 100644 --- a/docs/api/functions/Data.Onchain.getTokenAddressSync.html +++ b/docs/api/functions/Data.Onchain.getTokenAddressSync.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getTokenDecimals.html b/docs/api/functions/Data.Onchain.getTokenDecimals.html index c5cae17..4524c87 100644 --- a/docs/api/functions/Data.Onchain.getTokenDecimals.html +++ b/docs/api/functions/Data.Onchain.getTokenDecimals.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Data.Onchain.getTokenDecimalsSync.html b/docs/api/functions/Data.Onchain.getTokenDecimalsSync.html index 7bd8de5..a492e04 100644 --- a/docs/api/functions/Data.Onchain.getTokenDecimalsSync.html +++ b/docs/api/functions/Data.Onchain.getTokenDecimalsSync.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Network.Contracts.getInstance.html b/docs/api/functions/Network.Contracts.getInstance.html index e0e7cc7..875be98 100644 --- a/docs/api/functions/Network.Contracts.getInstance.html +++ b/docs/api/functions/Network.Contracts.getInstance.html @@ -34,7 +34,7 @@
    signerOrProvider: Provider | Signer
  • Returns TornadoInstance

    +
  • Defined in @tornado/sdk-chain/dist/index.d.ts:58
  • diff --git a/docs/api/functions/Network.Contracts.getRegistry.html b/docs/api/functions/Network.Contracts.getRegistry.html index e86e85c..083e768 100644 --- a/docs/api/functions/Network.Contracts.getRegistry.html +++ b/docs/api/functions/Network.Contracts.getRegistry.html @@ -30,7 +30,7 @@
    Optional network: string
  • Returns RelayerRegistry

    +
  • Defined in @tornado/sdk-chain/dist/index.d.ts:57
  • Returns ERC20

    +
  • Defined in @tornado/sdk-chain/dist/index.d.ts:59
  • Returns ERC20

    +
  • Defined in @tornado/sdk-chain/dist/index.d.ts:60
  • Returns void

    +
  • Defined in @tornado/sdk-chain/dist/index.d.ts:71
  • diff --git a/docs/api/functions/Utils.ErrorUtils.ensureError.html b/docs/api/functions/Utils.ErrorUtils.ensureError.html index 4c5c606..67db0e2 100644 --- a/docs/api/functions/Utils.ErrorUtils.ensureError.html +++ b/docs/api/functions/Utils.ErrorUtils.ensureError.html @@ -219,6 +219,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Utils.ErrorUtils.getError.html b/docs/api/functions/Utils.ErrorUtils.getError.html index 99e610f..cb0f373 100644 --- a/docs/api/functions/Utils.ErrorUtils.getError.html +++ b/docs/api/functions/Utils.ErrorUtils.getError.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Utils.HexUtils.bigIntToHex.html b/docs/api/functions/Utils.HexUtils.bigIntToHex.html index 2b4fd3f..e8d6d23 100644 --- a/docs/api/functions/Utils.HexUtils.bigIntToHex.html +++ b/docs/api/functions/Utils.HexUtils.bigIntToHex.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Utils.HexUtils.bufferToHex.html b/docs/api/functions/Utils.HexUtils.bufferToHex.html index 355f475..55d132e 100644 --- a/docs/api/functions/Utils.HexUtils.bufferToHex.html +++ b/docs/api/functions/Utils.HexUtils.bufferToHex.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Utils.HexUtils.numberToHex.html b/docs/api/functions/Utils.HexUtils.numberToHex.html index 8f325f2..fddd65f 100644 --- a/docs/api/functions/Utils.HexUtils.numberToHex.html +++ b/docs/api/functions/Utils.HexUtils.numberToHex.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Utils.HexUtils.prepareAddress.html b/docs/api/functions/Utils.HexUtils.prepareAddress.html index cb7a8c8..03fee3a 100644 --- a/docs/api/functions/Utils.HexUtils.prepareAddress.html +++ b/docs/api/functions/Utils.HexUtils.prepareAddress.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Utils.NumberUtils.getRandomFromRange.html b/docs/api/functions/Utils.NumberUtils.getRandomFromRange.html index d44148d..da3f29c 100644 --- a/docs/api/functions/Utils.NumberUtils.getRandomFromRange.html +++ b/docs/api/functions/Utils.NumberUtils.getRandomFromRange.html @@ -218,6 +218,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Utils.NumberUtils.randomBigInteger.html b/docs/api/functions/Utils.NumberUtils.randomBigInteger.html index 0db7be4..43f592b 100644 --- a/docs/api/functions/Utils.NumberUtils.randomBigInteger.html +++ b/docs/api/functions/Utils.NumberUtils.randomBigInteger.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Utils.ObjectUtils.exists.html b/docs/api/functions/Utils.ObjectUtils.exists.html index 4c23b50..267042e 100644 --- a/docs/api/functions/Utils.ObjectUtils.exists.html +++ b/docs/api/functions/Utils.ObjectUtils.exists.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Utils.ObjectUtils.populate.html b/docs/api/functions/Utils.ObjectUtils.populate.html index 058d870..9ed2fff 100644 --- a/docs/api/functions/Utils.ObjectUtils.populate.html +++ b/docs/api/functions/Utils.ObjectUtils.populate.html @@ -221,6 +221,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/functions/Utils.ObjectUtils.swap.html b/docs/api/functions/Utils.ObjectUtils.swap.html index 4d6dcbf..32b07f5 100644 --- a/docs/api/functions/Utils.ObjectUtils.swap.html +++ b/docs/api/functions/Utils.ObjectUtils.swap.html @@ -221,6 +221,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/index.html b/docs/api/index.html index 290a033..06403da 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -24,7 +24,7 @@

    Contributions are welcome, we are here for freedom after all!

    See HISTORY.md for a development log.

    Latest package md5sum checksums

    If they are not correct contact the dev, post an issue, or yell in the Matrix chat.

    -
    19ca2e85b680d6605e7b3c39e9acc791  tornado-sdk-0.0.11-alpha.zip
    168bcc32bb6f6973205413ebd685ad55 tornado-sdk-chain-0.0.11-alpha.zip
    a2facbdf22e78bbb3de0d0cf6ad86280 tornado-sdk-core-0.0.11-alpha.zip
    90c3be466ab4fa4795377336ba7f0e67 tornado-sdk-crypto-0.0.11-alpha.zip
    0442a6f42ece8615c4d6b04f2d00f4e9 tornado-sdk-data-0.0.11-alpha.zip
    2b79bc500ad061c518c3d369e85e89e6 tornado-sdk-utils-0.0.11-alpha.zip
    faf9dc39b0fbbb06f6848ea9217a1b17 tornado-sdk-web-0.0.11-alpha.zip +
    bfa7f04719b1c21eb4ef35651ae4c59a  tornado-sdk-0.0.12-alpha.zip
    b6800a4fb03e049c583fd01491b905f9 tornado-sdk-chain-0.0.12-alpha.zip
    996780acf44b7d5b8acfde1114272531 tornado-sdk-core-0.0.12-alpha.zip
    eba0179c6fb3d49ddcecf8239dfec88d tornado-sdk-crypto-0.0.12-alpha.zip
    e7212248f48c62818204ff22175fcf20 tornado-sdk-data-0.0.12-alpha.zip
    c571038fabb99c1290b4521a90f67aea tornado-sdk-registry-0.0.12-alpha.zip
    2e3264f2edaf9cbe7894f0d4362f5bde tornado-sdk-utils-0.0.12-alpha.zip
    4b93d201e6fd2e4bfa51b321e4c2aba4 tornado-sdk-web-0.0.12-alpha.zip
  • diff --git a/docs/api/interfaces/Crypto.InputFor.BuildMerkleTree.html b/docs/api/interfaces/Crypto.InputFor.BuildMerkleTree.html index 9180561..93c98d4 100644 --- a/docs/api/interfaces/Crypto.InputFor.BuildMerkleTree.html +++ b/docs/api/interfaces/Crypto.InputFor.BuildMerkleTree.html @@ -236,6 +236,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/interfaces/Crypto.InputFor.CreateDeposit.html b/docs/api/interfaces/Crypto.InputFor.CreateDeposit.html index 92013b9..aa0e55e 100644 --- a/docs/api/interfaces/Crypto.InputFor.CreateDeposit.html +++ b/docs/api/interfaces/Crypto.InputFor.CreateDeposit.html @@ -236,6 +236,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/interfaces/Crypto.InputFor.DepositProof.html b/docs/api/interfaces/Crypto.InputFor.DepositProof.html index daeb650..722f828 100644 --- a/docs/api/interfaces/Crypto.InputFor.DepositProof.html +++ b/docs/api/interfaces/Crypto.InputFor.DepositProof.html @@ -262,6 +262,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/interfaces/Crypto.InputFor.PedersenHash.html b/docs/api/interfaces/Crypto.InputFor.PedersenHash.html index 3571928..7ec930d 100644 --- a/docs/api/interfaces/Crypto.InputFor.PedersenHash.html +++ b/docs/api/interfaces/Crypto.InputFor.PedersenHash.html @@ -229,6 +229,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/interfaces/Crypto.OutputOf.CreateDeposit.html b/docs/api/interfaces/Crypto.OutputOf.CreateDeposit.html index b20cc46..2ede398 100644 --- a/docs/api/interfaces/Crypto.OutputOf.CreateDeposit.html +++ b/docs/api/interfaces/Crypto.OutputOf.CreateDeposit.html @@ -271,6 +271,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/interfaces/Crypto.OutputOf.Groth16Proof.html b/docs/api/interfaces/Crypto.OutputOf.Groth16Proof.html index 15f39f9..5cea8f4 100644 --- a/docs/api/interfaces/Crypto.OutputOf.Groth16Proof.html +++ b/docs/api/interfaces/Crypto.OutputOf.Groth16Proof.html @@ -243,6 +243,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/interfaces/Crypto.OutputOf.MerkleProof.html b/docs/api/interfaces/Crypto.OutputOf.MerkleProof.html index 87f194e..6f2e7c1 100644 --- a/docs/api/interfaces/Crypto.OutputOf.MerkleProof.html +++ b/docs/api/interfaces/Crypto.OutputOf.MerkleProof.html @@ -243,6 +243,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/interfaces/Data.ClassicInstance.html b/docs/api/interfaces/Data.ClassicInstance.html index 27c0a4d..2a7b8cf 100644 --- a/docs/api/interfaces/Data.ClassicInstance.html +++ b/docs/api/interfaces/Data.ClassicInstance.html @@ -278,6 +278,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/interfaces/Data.Keys.InstanceLookup.html b/docs/api/interfaces/Data.Keys.InstanceLookup.html index 04a4cee..8979173 100644 --- a/docs/api/interfaces/Data.Keys.InstanceLookup.html +++ b/docs/api/interfaces/Data.Keys.InstanceLookup.html @@ -243,6 +243,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/interfaces/Data.Options.Cache.html b/docs/api/interfaces/Data.Options.Cache.html index 3e12cc7..66c724a 100644 --- a/docs/api/interfaces/Data.Options.Cache.html +++ b/docs/api/interfaces/Data.Options.Cache.html @@ -243,6 +243,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/interfaces/Data.RelayerProperties.html b/docs/api/interfaces/Data.RelayerProperties.html index 2717df8..a8168a6 100644 --- a/docs/api/interfaces/Data.RelayerProperties.html +++ b/docs/api/interfaces/Data.RelayerProperties.html @@ -270,6 +270,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/interfaces/Data.TokenData.html b/docs/api/interfaces/Data.TokenData.html index f77f534..b2885f0 100644 --- a/docs/api/interfaces/Data.TokenData.html +++ b/docs/api/interfaces/Data.TokenData.html @@ -242,6 +242,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/interfaces/Data.TornadoInstance.html b/docs/api/interfaces/Data.TornadoInstance.html index 9794174..91aaae1 100644 --- a/docs/api/interfaces/Data.TornadoInstance.html +++ b/docs/api/interfaces/Data.TornadoInstance.html @@ -265,6 +265,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/interfaces/Network.Options.Sync.html b/docs/api/interfaces/Network.Options.Sync.html index 01fef90..e1126f2 100644 --- a/docs/api/interfaces/Network.Options.Sync.html +++ b/docs/api/interfaces/Network.Options.Sync.html @@ -271,6 +271,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/interfaces/Options.Core.BuildDepositProof.html b/docs/api/interfaces/Options.Core.BuildDepositProof.html index d10da84..1fd4c3a 100644 --- a/docs/api/interfaces/Options.Core.BuildDepositProof.html +++ b/docs/api/interfaces/Options.Core.BuildDepositProof.html @@ -22,7 +22,7 @@
    • BuildDepositProof
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:18
  • @@ -44,37 +44,37 @@
    checkKnownRoot?: boolean
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:24
  • checkNotesSpent?: boolean
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:23
  • ethPurchaseAmounts?: BigNumber[]
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:22
  • gasPrice?: BigNumber
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:19
  • gasPriceCushion?: BigNumber
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:20
  • merkleTreeHeight?: number
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:25
  • tokenDecimals?: number
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:21
  • +
  • Defined in @tornado/sdk-core/dist/index.d.ts:15
  • +
  • Defined in @tornado/sdk-core/dist/index.d.ts:33
  • diff --git a/docs/api/interfaces/Web.Options.Relayer.html b/docs/api/interfaces/Web.Options.Relayer.html index 19562d3..479ef7e 100644 --- a/docs/api/interfaces/Web.Options.Relayer.html +++ b/docs/api/interfaces/Web.Options.Relayer.html @@ -236,6 +236,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/interfaces/Web.WithdrawalRequestResult.html b/docs/api/interfaces/Web.WithdrawalRequestResult.html index 65b06f1..f7999e3 100644 --- a/docs/api/interfaces/Web.WithdrawalRequestResult.html +++ b/docs/api/interfaces/Web.WithdrawalRequestResult.html @@ -235,6 +235,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules.html b/docs/api/modules.html index 59a0104..0ef2a4a 100644 --- a/docs/api/modules.html +++ b/docs/api/modules.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Crypto.InputFor.html b/docs/api/modules/Crypto.InputFor.html index 5367988..82d1e78 100644 --- a/docs/api/modules/Crypto.InputFor.html +++ b/docs/api/modules/Crypto.InputFor.html @@ -224,6 +224,7 @@ to the merkle proof builder.

  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Crypto.OutputOf.html b/docs/api/modules/Crypto.OutputOf.html index 96c8fa0..830048f 100644 --- a/docs/api/modules/Crypto.OutputOf.html +++ b/docs/api/modules/Crypto.OutputOf.html @@ -222,6 +222,7 @@ appropriate.

  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Crypto.Primitives.html b/docs/api/modules/Crypto.Primitives.html index 7c6cedd..336a89c 100644 --- a/docs/api/modules/Crypto.Primitives.html +++ b/docs/api/modules/Crypto.Primitives.html @@ -218,6 +218,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Crypto.Setup.html b/docs/api/modules/Crypto.Setup.html index 7f9da96..7d908a3 100644 --- a/docs/api/modules/Crypto.Setup.html +++ b/docs/api/modules/Crypto.Setup.html @@ -219,6 +219,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Crypto.html b/docs/api/modules/Crypto.html index 52b1efc..cb7f06a 100644 --- a/docs/api/modules/Crypto.html +++ b/docs/api/modules/Crypto.html @@ -219,6 +219,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Data.Cache.html b/docs/api/modules/Data.Cache.html index 309db91..98d1991 100644 --- a/docs/api/modules/Data.Cache.html +++ b/docs/api/modules/Data.Cache.html @@ -211,6 +211,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Data.Constants.html b/docs/api/modules/Data.Constants.html index 6e7d257..2285b0b 100644 --- a/docs/api/modules/Data.Constants.html +++ b/docs/api/modules/Data.Constants.html @@ -210,6 +210,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Data.Docs.html b/docs/api/modules/Data.Docs.html index bf08afe..f85bad2 100644 --- a/docs/api/modules/Data.Docs.html +++ b/docs/api/modules/Data.Docs.html @@ -215,6 +215,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Data.Files.html b/docs/api/modules/Data.Files.html index ed69dc5..844f56e 100644 --- a/docs/api/modules/Data.Files.html +++ b/docs/api/modules/Data.Files.html @@ -227,6 +227,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Data.Json.html b/docs/api/modules/Data.Json.html index 2679031..50cdf13 100644 --- a/docs/api/modules/Data.Json.html +++ b/docs/api/modules/Data.Json.html @@ -216,6 +216,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Data.Keys.html b/docs/api/modules/Data.Keys.html index 6d4fe00..38102f4 100644 --- a/docs/api/modules/Data.Keys.html +++ b/docs/api/modules/Data.Keys.html @@ -210,6 +210,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Data.Offchain.html b/docs/api/modules/Data.Offchain.html index fccecc6..c85c488 100644 --- a/docs/api/modules/Data.Offchain.html +++ b/docs/api/modules/Data.Offchain.html @@ -213,6 +213,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Data.Onchain.html b/docs/api/modules/Data.Onchain.html index 4b039f6..faac54c 100644 --- a/docs/api/modules/Data.Onchain.html +++ b/docs/api/modules/Data.Onchain.html @@ -239,6 +239,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Data.Options.html b/docs/api/modules/Data.Options.html index 6b7820d..fde558c 100644 --- a/docs/api/modules/Data.Options.html +++ b/docs/api/modules/Data.Options.html @@ -210,6 +210,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Data.html b/docs/api/modules/Data.html index 241946a..0b1e8f5 100644 --- a/docs/api/modules/Data.html +++ b/docs/api/modules/Data.html @@ -224,6 +224,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Network.Contracts.html b/docs/api/modules/Network.Contracts.html index 2244ae9..2ff7360 100644 --- a/docs/api/modules/Network.Contracts.html +++ b/docs/api/modules/Network.Contracts.html @@ -29,6 +29,7 @@ @@ -217,6 +218,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Network.Options.html b/docs/api/modules/Network.Options.html index 64d159f..5bf623a 100644 --- a/docs/api/modules/Network.Options.html +++ b/docs/api/modules/Network.Options.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Network.html b/docs/api/modules/Network.html index af75fd9..d32b6b4 100644 --- a/docs/api/modules/Network.html +++ b/docs/api/modules/Network.html @@ -223,6 +223,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Options.Core.html b/docs/api/modules/Options.Core.html index 7929a6d..f4991e7 100644 --- a/docs/api/modules/Options.Core.html +++ b/docs/api/modules/Options.Core.html @@ -215,6 +215,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Options.html b/docs/api/modules/Options.html index b666b44..021dc6b 100644 --- a/docs/api/modules/Options.html +++ b/docs/api/modules/Options.html @@ -214,6 +214,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Transactions.html b/docs/api/modules/Transactions.html index 26f9bd5..a8b74f4 100644 --- a/docs/api/modules/Transactions.html +++ b/docs/api/modules/Transactions.html @@ -16,7 +16,7 @@
  • Transactions
  • Namespace Transactions

    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:31
  • Index

    @@ -213,6 +213,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Utils.AsyncUtils.html b/docs/api/modules/Utils.AsyncUtils.html index 8d351fa..b8072f0 100644 --- a/docs/api/modules/Utils.AsyncUtils.html +++ b/docs/api/modules/Utils.AsyncUtils.html @@ -220,6 +220,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Utils.ErrorUtils.html b/docs/api/modules/Utils.ErrorUtils.html index e7bab9a..28d3a4b 100644 --- a/docs/api/modules/Utils.ErrorUtils.html +++ b/docs/api/modules/Utils.ErrorUtils.html @@ -211,6 +211,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Utils.HexUtils.html b/docs/api/modules/Utils.HexUtils.html index 42f5136..28a2189 100644 --- a/docs/api/modules/Utils.HexUtils.html +++ b/docs/api/modules/Utils.HexUtils.html @@ -213,6 +213,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Utils.NumberUtils.html b/docs/api/modules/Utils.NumberUtils.html index 1cc245b..3c96ccd 100644 --- a/docs/api/modules/Utils.NumberUtils.html +++ b/docs/api/modules/Utils.NumberUtils.html @@ -211,6 +211,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Utils.ObjectUtils.html b/docs/api/modules/Utils.ObjectUtils.html index 2d0251d..e35ff3e 100644 --- a/docs/api/modules/Utils.ObjectUtils.html +++ b/docs/api/modules/Utils.ObjectUtils.html @@ -212,6 +212,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Utils.html b/docs/api/modules/Utils.html index 2c82b53..9857b7b 100644 --- a/docs/api/modules/Utils.html +++ b/docs/api/modules/Utils.html @@ -213,6 +213,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Web.Options.html b/docs/api/modules/Web.Options.html index 2d6654f..428bf8f 100644 --- a/docs/api/modules/Web.Options.html +++ b/docs/api/modules/Web.Options.html @@ -210,6 +210,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/modules/Web.html b/docs/api/modules/Web.html index a0ce878..e6b364f 100644 --- a/docs/api/modules/Web.html +++ b/docs/api/modules/Web.html @@ -228,6 +228,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/types/Crypto.DepositInfo.html b/docs/api/types/Crypto.DepositInfo.html index b3fc4a3..b18402c 100644 --- a/docs/api/types/Crypto.DepositInfo.html +++ b/docs/api/types/Crypto.DepositInfo.html @@ -204,6 +204,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/types/Crypto.DepositProof.html b/docs/api/types/Crypto.DepositProof.html index d0b0764..1e4d740 100644 --- a/docs/api/types/Crypto.DepositProof.html +++ b/docs/api/types/Crypto.DepositProof.html @@ -204,6 +204,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/types/Crypto.InputFor.Groth16.html b/docs/api/types/Crypto.InputFor.Groth16.html index 291ce69..6092763 100644 --- a/docs/api/types/Crypto.InputFor.Groth16.html +++ b/docs/api/types/Crypto.InputFor.Groth16.html @@ -205,6 +205,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/types/Crypto.MerkleProof.html b/docs/api/types/Crypto.MerkleProof.html index ff8e8c3..590b5be 100644 --- a/docs/api/types/Crypto.MerkleProof.html +++ b/docs/api/types/Crypto.MerkleProof.html @@ -204,6 +204,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/types/Crypto.OutputOf.PedersenHash.html b/docs/api/types/Crypto.OutputOf.PedersenHash.html index 6dfcd1b..a00df15 100644 --- a/docs/api/types/Crypto.OutputOf.PedersenHash.html +++ b/docs/api/types/Crypto.OutputOf.PedersenHash.html @@ -205,6 +205,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/types/Crypto.bigInt.html b/docs/api/types/Crypto.bigInt.html index 7200a92..9e25d2f 100644 --- a/docs/api/types/Crypto.bigInt.html +++ b/docs/api/types/Crypto.bigInt.html @@ -204,6 +204,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/types/Data.Files.PathGetter.html b/docs/api/types/Data.Files.PathGetter.html index 36b5cd3..e9915d0 100644 --- a/docs/api/types/Data.Files.PathGetter.html +++ b/docs/api/types/Data.Files.PathGetter.html @@ -218,6 +218,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/types/Network.Options.Cache.html b/docs/api/types/Network.Options.Cache.html index cf8b170..0aead25 100644 --- a/docs/api/types/Network.Options.Cache.html +++ b/docs/api/types/Network.Options.Cache.html @@ -205,6 +205,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/types/Network.TornadoContracts.html b/docs/api/types/Network.TornadoContracts.html index 80ea55e..f3b45af 100644 --- a/docs/api/types/Network.TornadoContracts.html +++ b/docs/api/types/Network.TornadoContracts.html @@ -16,7 +16,7 @@
  • Network
  • TornadoContracts
  • Type alias TornadoContracts

    -
    TornadoContracts: TornadoInstance | TornadoProxy | ETHTornado | ERC20Tornado | ERC20 | RelayerRegistry
    +
  • Defined in @tornado/sdk-core/dist/index.d.ts:17
  • +
  • Defined in @tornado/sdk-core/dist/index.d.ts:28
  • +
  • Defined in @tornado/sdk-core/dist/index.d.ts:37
  • diff --git a/docs/api/types/Utils.AsyncUtils.ErrorHandler.html b/docs/api/types/Utils.AsyncUtils.ErrorHandler.html index 33f3e2c..75e2570 100644 --- a/docs/api/types/Utils.AsyncUtils.ErrorHandler.html +++ b/docs/api/types/Utils.AsyncUtils.ErrorHandler.html @@ -226,6 +226,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/types/Web.RelayerOptions.html b/docs/api/types/Web.RelayerOptions.html index 173fba3..4a05939 100644 --- a/docs/api/types/Web.RelayerOptions.html +++ b/docs/api/types/Web.RelayerOptions.html @@ -204,6 +204,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/variables/Data.Constants.MERKLE_TREE_HEIGHT.html b/docs/api/variables/Data.Constants.MERKLE_TREE_HEIGHT.html index 34aaedc..802a94f 100644 --- a/docs/api/variables/Data.Constants.MERKLE_TREE_HEIGHT.html +++ b/docs/api/variables/Data.Constants.MERKLE_TREE_HEIGHT.html @@ -205,6 +205,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/variables/Web.RegularHttpClient.html b/docs/api/variables/Web.RegularHttpClient.html index 59f089b..4365d31 100644 --- a/docs/api/variables/Web.RegularHttpClient.html +++ b/docs/api/variables/Web.RegularHttpClient.html @@ -217,6 +217,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/docs/api/variables/Web.TorHttpClient.html b/docs/api/variables/Web.TorHttpClient.html index 938dcb5..96fab6f 100644 --- a/docs/api/variables/Web.TorHttpClient.html +++ b/docs/api/variables/Web.TorHttpClient.html @@ -227,6 +227,7 @@
  • getInstance
  • getProxy
  • getRegistry
  • +
  • getRouter
  • getToken
  • getTornToken
  • diff --git a/package.json b/package.json index cd0049d..9765bea 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "crypto", "zk" ], - "version": "0.0.12-alpha", + "version": "0.0.13-alpha", "engines": { "node": "^18" }, @@ -95,7 +95,7 @@ "typechain:core": "typechain --target \"ethers-v5\" --discriminate-types --glob \"./abis/*.json\" --out-dir=\"./@tornado/sdk-core/src/deth\"", "typechain:chain": "typechain --target \"ethers-v5\" --discriminate-types --glob \"./abis/*.json\" --out-dir=\"./@tornado/sdk-chain/src/deth\"", "typechain:registry": "typechain --target \"ethers-v5\" --discriminate-types --glob \"./abis/*.json\" --out-dir=\"./@tornado/sdk-registry/src/deth\"", - "packall": "mkdir -p packages && yarn workspaces foreach --no-private pack --out \"../../packages/%s-@%v.zip\" && rename -a '@' '' packages/*" + "packall": "rm -rf packages/* && mkdir -p packages && yarn workspaces foreach --no-private pack --out \"../../packages/%s-@%v.zip\" && rename -a '@' '' packages/*" }, "publishConfig": { "access": "public" diff --git a/test/core.test.ts b/test/core.test.ts index 1af781e..8a956c7 100644 --- a/test/core.test.ts +++ b/test/core.test.ts @@ -140,6 +140,7 @@ describe('Core', () => { // This is going to try syncing the entire range await core.syncDeposits(instances[i], { concurrencyLimit: 8, + blockDelta: 10000, msTimeout: 300 }) @@ -281,8 +282,8 @@ describe('Core', () => { it('createDepositTransaction: build a single token deposit tx and succeed', async () => { // Prep deposit amount, proxy for approval, cache, bal for comp const depositAmount = parseUnits('100000') - const proxy = core.getProxy() const daiBalBef = await dai.balanceOf(dai100K.address) + const proxy = core.getRouter() // We listen for deposits core.listenForDeposits(dai100K) @@ -447,10 +448,10 @@ describe('Core', () => { } }).timeout(0) - it('createDepositTransactions: multiple token deposits', async () => { + it.only('createDepositTransactions: multiple dai deposits', async () => { // Prepare contracts const denoms = [100, 1000, 10000, 100000] - const proxy = core.getProxy() + const proxy = core.getRouter() const instances = core.getInstances( denoms.map((el) => { return { token: 'dai', denomination: el } @@ -512,7 +513,7 @@ describe('Core', () => { expect(await dai.balanceOf(needsMoneyAddress)).to.equal(0) }).timeout(0) - it('createDepositProofs: multiple dai withdrawals', async () => { + it.only('createDepositProofs: multiple dai withdrawals', async () => { // ETH instances const denoms = [100, 1000, 10000, 100000] const instances = core.getInstances( @@ -528,7 +529,6 @@ describe('Core', () => { let notes = await core.loadNotes() // Fake relayer properties - let properties: RelayerProperties = { address: withdrawerAddress, version: '2', diff --git a/test/deth/TornadoRouter.ts b/test/deth/TornadoRouter.ts new file mode 100644 index 0000000..1596476 --- /dev/null +++ b/test/deth/TornadoRouter.ts @@ -0,0 +1,605 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PayableOverrides, + PopulatedTransaction, + Signer, + utils, +} from "ethers"; +import type { + FunctionFragment, + Result, + EventFragment, +} from "@ethersproject/abi"; +import type { Listener, Provider } from "@ethersproject/providers"; +import type { + TypedEventFilter, + TypedEvent, + TypedListener, + OnEvent, + PromiseOrValue, +} from "./common"; + +export interface TornadoRouterInterface extends utils.Interface { + functions: { + "approveTokenForInstance(address,address,uint256)": FunctionFragment; + "backupNotes(bytes[])": FunctionFragment; + "deposit(address,bytes32,bytes)": FunctionFragment; + "governanceProxyAddress()": FunctionFragment; + "initialize(address,address)": FunctionFragment; + "instanceRegistry()": FunctionFragment; + "relayerRegistry()": FunctionFragment; + "rescueTokens(address,address,uint256)": FunctionFragment; + "setInstanceRegistry(address)": FunctionFragment; + "setRelayerRegistry(address)": FunctionFragment; + "version()": FunctionFragment; + "withdraw(address,bytes,bytes32,bytes32,address,address,uint256,uint256)": FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | "approveTokenForInstance" + | "backupNotes" + | "deposit" + | "governanceProxyAddress" + | "initialize" + | "instanceRegistry" + | "relayerRegistry" + | "rescueTokens" + | "setInstanceRegistry" + | "setRelayerRegistry" + | "version" + | "withdraw" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "approveTokenForInstance", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "backupNotes", + values: [PromiseOrValue[]] + ): string; + encodeFunctionData( + functionFragment: "deposit", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "governanceProxyAddress", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [PromiseOrValue, PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "instanceRegistry", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "relayerRegistry", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "rescueTokens", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "setInstanceRegistry", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "setRelayerRegistry", + values: [PromiseOrValue] + ): string; + encodeFunctionData(functionFragment: "version", values?: undefined): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + + decodeFunctionResult( + functionFragment: "approveTokenForInstance", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "backupNotes", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "governanceProxyAddress", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "instanceRegistry", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "relayerRegistry", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rescueTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setInstanceRegistry", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setRelayerRegistry", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "version", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + + events: { + "EncryptedNote(address,bytes)": EventFragment; + "InstanceRegistryUpdated(address)": EventFragment; + "RelayerRegistryUpdated(address)": EventFragment; + "TokenApproved(address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "EncryptedNote"): EventFragment; + getEvent(nameOrSignatureOrTopic: "InstanceRegistryUpdated"): EventFragment; + getEvent(nameOrSignatureOrTopic: "RelayerRegistryUpdated"): EventFragment; + getEvent(nameOrSignatureOrTopic: "TokenApproved"): EventFragment; +} + +export interface EncryptedNoteEventObject { + sender: string; + encryptedNote: string; +} +export type EncryptedNoteEvent = TypedEvent< + [string, string], + EncryptedNoteEventObject +>; + +export type EncryptedNoteEventFilter = TypedEventFilter; + +export interface InstanceRegistryUpdatedEventObject { + newInstanceRegistryProxyAddress: string; +} +export type InstanceRegistryUpdatedEvent = TypedEvent< + [string], + InstanceRegistryUpdatedEventObject +>; + +export type InstanceRegistryUpdatedEventFilter = + TypedEventFilter; + +export interface RelayerRegistryUpdatedEventObject { + newRelayerRegistryProxyAddress: string; +} +export type RelayerRegistryUpdatedEvent = TypedEvent< + [string], + RelayerRegistryUpdatedEventObject +>; + +export type RelayerRegistryUpdatedEventFilter = + TypedEventFilter; + +export interface TokenApprovedEventObject { + spender: string; + amount: BigNumber; +} +export type TokenApprovedEvent = TypedEvent< + [string, BigNumber], + TokenApprovedEventObject +>; + +export type TokenApprovedEventFilter = TypedEventFilter; + +export interface TornadoRouter extends BaseContract { + contractName: "TornadoRouter"; + + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: TornadoRouterInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>; + + listeners( + eventFilter?: TypedEventFilter + ): Array>; + listeners(eventName?: string): Array; + removeAllListeners( + eventFilter: TypedEventFilter + ): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise; + + governanceProxyAddress(overrides?: CallOverrides): Promise<[string]>; + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + instanceRegistry(overrides?: CallOverrides): Promise<[string]>; + + relayerRegistry(overrides?: CallOverrides): Promise<[string]>; + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + version(overrides?: CallOverrides): Promise<[string]>; + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise; + }; + + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise; + + governanceProxyAddress(overrides?: CallOverrides): Promise; + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + instanceRegistry(overrides?: CallOverrides): Promise; + + relayerRegistry(overrides?: CallOverrides): Promise; + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + version(overrides?: CallOverrides): Promise; + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise; + + callStatic: { + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: CallOverrides + ): Promise; + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + governanceProxyAddress(overrides?: CallOverrides): Promise; + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + instanceRegistry(overrides?: CallOverrides): Promise; + + relayerRegistry(overrides?: CallOverrides): Promise; + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + version(overrides?: CallOverrides): Promise; + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "EncryptedNote(address,bytes)"( + sender?: PromiseOrValue | null, + encryptedNote?: null + ): EncryptedNoteEventFilter; + EncryptedNote( + sender?: PromiseOrValue | null, + encryptedNote?: null + ): EncryptedNoteEventFilter; + + "InstanceRegistryUpdated(address)"( + newInstanceRegistryProxyAddress?: null + ): InstanceRegistryUpdatedEventFilter; + InstanceRegistryUpdated( + newInstanceRegistryProxyAddress?: null + ): InstanceRegistryUpdatedEventFilter; + + "RelayerRegistryUpdated(address)"( + newRelayerRegistryProxyAddress?: null + ): RelayerRegistryUpdatedEventFilter; + RelayerRegistryUpdated( + newRelayerRegistryProxyAddress?: null + ): RelayerRegistryUpdatedEventFilter; + + "TokenApproved(address,uint256)"( + spender?: PromiseOrValue | null, + amount?: null + ): TokenApprovedEventFilter; + TokenApproved( + spender?: PromiseOrValue | null, + amount?: null + ): TokenApprovedEventFilter; + }; + + estimateGas: { + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise; + + governanceProxyAddress(overrides?: CallOverrides): Promise; + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + instanceRegistry(overrides?: CallOverrides): Promise; + + relayerRegistry(overrides?: CallOverrides): Promise; + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + version(overrides?: CallOverrides): Promise; + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise; + }; + + populateTransaction: { + approveTokenForInstance( + _token: PromiseOrValue, + _spender: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + backupNotes( + _encryptedNotes: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + deposit( + _tornado: PromiseOrValue, + _commitment: PromiseOrValue, + _encryptedNote: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise; + + governanceProxyAddress( + overrides?: CallOverrides + ): Promise; + + initialize( + _instanceRegistryAddress: PromiseOrValue, + _relayerRegistryAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + instanceRegistry(overrides?: CallOverrides): Promise; + + relayerRegistry(overrides?: CallOverrides): Promise; + + rescueTokens( + _token: PromiseOrValue, + _to: PromiseOrValue, + _amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + setInstanceRegistry( + _newInstanceRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + setRelayerRegistry( + _newRelayerRegistryProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + version(overrides?: CallOverrides): Promise; + + withdraw( + _tornado: PromiseOrValue, + _proof: PromiseOrValue, + _root: PromiseOrValue, + _nullifierHash: PromiseOrValue, + _recipient: PromiseOrValue, + _relayer: PromiseOrValue, + _fee: PromiseOrValue, + _refund: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise; + }; +} diff --git a/test/deth/factories/TornadoRouter__factory.ts b/test/deth/factories/TornadoRouter__factory.ts new file mode 100644 index 0000000..3ccfdfb --- /dev/null +++ b/test/deth/factories/TornadoRouter__factory.ts @@ -0,0 +1,370 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import type { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { PromiseOrValue } from "../common"; +import type { TornadoRouter, TornadoRouterInterface } from "../TornadoRouter"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_governanceProxyAddress", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "encryptedNote", + type: "bytes", + }, + ], + name: "EncryptedNote", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "newInstanceRegistryProxyAddress", + type: "address", + }, + ], + name: "InstanceRegistryUpdated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "newRelayerRegistryProxyAddress", + type: "address", + }, + ], + name: "RelayerRegistryUpdated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "TokenApproved", + type: "event", + }, + { + inputs: [ + { + internalType: "contract IERC20", + name: "_token", + type: "address", + }, + { + internalType: "address", + name: "_spender", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + ], + name: "approveTokenForInstance", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "_encryptedNotes", + type: "bytes[]", + }, + ], + name: "backupNotes", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "contract ITornadoInstance", + name: "_tornado", + type: "address", + }, + { + internalType: "bytes32", + name: "_commitment", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_encryptedNote", + type: "bytes", + }, + ], + name: "deposit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "governanceProxyAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_instanceRegistryAddress", + type: "address", + }, + { + internalType: "address", + name: "_relayerRegistryAddress", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "instanceRegistry", + outputs: [ + { + internalType: "contract InstanceRegistry", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "relayerRegistry", + outputs: [ + { + internalType: "contract RelayerRegistry", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "contract IERC20", + name: "_token", + type: "address", + }, + { + internalType: "address payable", + name: "_to", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + ], + name: "rescueTokens", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_newInstanceRegistryProxyAddress", + type: "address", + }, + ], + name: "setInstanceRegistry", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_newRelayerRegistryProxyAddress", + type: "address", + }, + ], + name: "setRelayerRegistry", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "version", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "contract ITornadoInstance", + name: "_tornado", + type: "address", + }, + { + internalType: "bytes", + name: "_proof", + type: "bytes", + }, + { + internalType: "bytes32", + name: "_root", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_nullifierHash", + type: "bytes32", + }, + { + internalType: "address payable", + name: "_recipient", + type: "address", + }, + { + internalType: "address payable", + name: "_relayer", + type: "address", + }, + { + internalType: "uint256", + name: "_fee", + type: "uint256", + }, + { + internalType: "uint256", + name: "_refund", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "payable", + type: "function", + }, +] as const; + +const _bytecode = + "0x60a060405234801561001057600080fd5b506040516115b03803806115b083398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c61150d6100a3600039806103f1528061042d5280610647528061086d5280610907525061150d6000f3fe6080604052600436106100975760003560e01c806313d98d131461009c57806336a3874b146100b15780634655478f146100dc57806347ff589d146100f1578063485cc955146101065780634b704c971461012657806354fd4d50146101465780636485ba2a1461016857806364cb281114610188578063b438689f146101a8578063baaa2169146101bb578063cea9d26f146101db575b600080fd5b6100af6100aa366004610f3f565b6101fb565b005b3480156100bd57600080fd5b506100c66103da565b6040516100d39190611096565b60405180910390f35b3480156100e857600080fd5b506100c66103ef565b3480156100fd57600080fd5b506100c6610413565b34801561011257600080fd5b506100af610121366004610dc0565b610422565b34801561013257600080fd5b506100af610141366004610ec2565b610530565b34801561015257600080fd5b5061015b6105ba565b6040516100d39190611193565b34801561017457600080fd5b506100af610183366004610df8565b6105e5565b34801561019457600080fd5b506100af6101a3366004610da4565b61063c565b6100af6101b6366004610f98565b6106da565b3480156101c757600080fd5b506100af6101d6366004610da4565b610862565b3480156101e757600080fd5b506100af6101f6366004610e82565b6108fc565b60008054604051636695ad4960e11b815282918291620100009091046001600160a01b03169063cd2b5a9290610235908a90600401611096565b60806040518083038186803b15801561024d57600080fd5b505afa158015610261573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102859190610ed6565b93509350509250806102b25760405162461bcd60e51b81526004016102a9906111fd565b60405180910390fd5b8115610340576103403330896001600160a01b0316638bca6d166040518163ffffffff1660e01b815260040160206040518083038186803b1580156102f657600080fd5b505afa15801561030a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032e9190611038565b6001600160a01b038716929190610a90565b60405163b214faa560e01b81526001600160a01b0388169063b214faa590349061036e908a90600401611124565b6000604051808303818588803b15801561038757600080fd5b505af115801561039b573d6000803e3d6000fd5b5050505050336001600160a01b03166000805160206114b883398151915286866040516103c992919061112d565b60405180910390a250505050505050565b6000546201000090046001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b031681565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461046a5760405162461bcd60e51b81526004016102a9906111c6565b600054610100900460ff16806104835750610483610aee565b80610491575060005460ff16155b6104ad5760405162461bcd60e51b81526004016102a990611240565b600054610100900460ff161580156104d8576000805460ff1961ff0019909116610100171660011790555b6000805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155600180546001600160a01b031916918416919091179055801561052b576000805461ff00191690555b505050565b6000546201000090046001600160a01b031633146105605760405162461bcd60e51b81526004016102a9906113de565b6105746001600160a01b0384168383610af4565b816001600160a01b03167fab1e93ce08cc196e636fe318c052f82163b40e499a90a0fdb38912ecd5beae11826040516105ad9190611124565b60405180910390a2505050565b6040805180820190915260118152703b1916b7b930b1b63296b6b0b730b3b2b960791b602082015290565b60005b8181101561052b57336000805160206114b883398151915284848481811061060c57fe5b905060200281019061061e9190611421565b60405161062c92919061112d565b60405180910390a26001016105e8565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106845760405162461bcd60e51b81526004016102a9906111c6565b600180546001600160a01b0319166001600160a01b0383161790556040517fd3c0577a88b56268da0350a01cb491fb15be69982729d9cb066a0603d1fc54b8906106cf908390611096565b60405180910390a150565b60008054604051636695ad4960e11b8152620100009091046001600160a01b03169063cd2b5a9290610710908d90600401611096565b60806040518083038186803b15801561072857600080fd5b505afa15801561073c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107609190610ed6565b9350505050806107825760405162461bcd60e51b81526004016102a9906111fd565b600154604051631168473b60e21b81526001600160a01b03909116906345a11cec906107b690339088908f906004016110aa565b600060405180830381600087803b1580156107d057600080fd5b505af11580156107e4573d6000803e3d6000fd5b50506040516310d056db60e11b81526001600160a01b038d1692506321a0adb691503490610824908d908d908d908d908d908d908d908d90600401611141565b6000604051808303818588803b15801561083d57600080fd5b505af1158015610851573d6000803e3d6000fd5b505050505050505050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108aa5760405162461bcd60e51b81526004016102a9906111c6565b6000805462010000600160b01b031916620100006001600160a01b038416021790556040517fcea779b12676b53bc3062b0064b8a14145a271c42db27627a1895a67324f64cb906106cf908390611096565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109445760405162461bcd60e51b81526004016102a9906111c6565b6001600160a01b03821661096a5760405162461bcd60e51b81526004016102a9906112c5565b6001600160a01b0383166109c6574760006109858284610bb7565b6040519091506001600160a01b0385169082156108fc029083906000818181858888f193505050501580156109be573d6000803e3d6000fd5b50505061052b565b6040516370a0823160e01b81526000906001600160a01b038516906370a08231906109f5903090600401611096565b60206040518083038186803b158015610a0d57600080fd5b505afa158015610a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a459190611038565b90506000610a538284610bb7565b905060008111610a755760405162461bcd60e51b81526004016102a990611351565b610a896001600160a01b0386168583610bcf565b5050505050565b610ae8846323b872dd60e01b858585604051602401610ab1939291906110e7565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610bee565b50505050565b303b1590565b801580610b7c5750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e90610b2a90309086906004016110cd565b60206040518083038186803b158015610b4257600080fd5b505afa158015610b56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7a9190611038565b155b610b985760405162461bcd60e51b81526004016102a990611388565b61052b8363095ea7b360e01b8484604051602401610ab192919061110b565b6000818310610bc65781610bc8565b825b9392505050565b61052b8363a9059cbb60e01b8484604051602401610ab192919061110b565b6060610c43826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610c7d9092919063ffffffff16565b80519091501561052b5780806020019051810190610c619190610e66565b61052b5760405162461bcd60e51b81526004016102a990611307565b6060610c8c8484600085610c94565b949350505050565b6060610c9f85610d58565b610cbb5760405162461bcd60e51b81526004016102a99061128e565b60006060866001600160a01b03168587604051610cd8919061107a565b60006040518083038185875af1925050503d8060008114610d15576040519150601f19603f3d011682016040523d82523d6000602084013e610d1a565b606091505b50915091508115610d2e579150610c8c9050565b805115610d3e5780518082602001fd5b8360405162461bcd60e51b81526004016102a99190611193565b3b151590565b60008083601f840112610d6f578182fd5b5081356001600160401b03811115610d85578182fd5b602083019150836020828501011115610d9d57600080fd5b9250929050565b600060208284031215610db5578081fd5b8135610bc881611491565b60008060408385031215610dd2578081fd5b8235610ddd81611491565b91506020830135610ded81611491565b809150509250929050565b60008060208385031215610e0a578182fd5b82356001600160401b0380821115610e20578384fd5b818501915085601f830112610e33578384fd5b813581811115610e41578485fd5b8660208083028501011115610e54578485fd5b60209290920196919550909350505050565b600060208284031215610e77578081fd5b8151610bc8816114a9565b600080600060608486031215610e96578081fd5b8335610ea181611491565b92506020840135610eb181611491565b929592945050506040919091013590565b600080600060608486031215610e96578283fd5b60008060008060808587031215610eeb578081fd5b8451610ef681611491565b60208601519094506001600160501b0381168114610f12578182fd5b6040860151909350610f23816114a9565b6060860151909250610f34816114a9565b939692955090935050565b60008060008060608587031215610f54578384fd5b8435610f5f81611491565b93506020850135925060408501356001600160401b03811115610f80578283fd5b610f8c87828801610d5e565b95989497509550505050565b60008060008060008060008060006101008a8c031215610fb6578485fd5b8935610fc181611491565b985060208a01356001600160401b03811115610fdb578586fd5b610fe78c828d01610d5e565b90995097505060408a0135955060608a0135945060808a013561100981611491565b935060a08a013561101981611491565b8093505060c08a0135915060e08a013590509295985092959850929598565b600060208284031215611049578081fd5b5051919050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000825161108c818460208701611465565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b90815260200190565b600060208252610c8c602083018486611050565b600060e0825261115560e083018a8c611050565b60208301989098525060408101959095526001600160a01b03938416606086015291909216608084015260a083019190915260c09091015292915050565b60006020825282518060208401526111b2816040850160208701611465565b601f01601f19169190910160400192915050565b6020808252601d908201527f546f726e61646f526f757465723a206f6e6c79476f7665726e616e6365000000604082015260600190565b60208082526023908201527f546f726e61646f526f757465723a20696e7374616e6365206e6f7420656e61626040820152621b195960ea1b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526022908201527f544f524e3a2063616e206e6f742073656e6420746f207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601e908201527f544f524e3a20747279696e6720746f2073656e6420302062616c616e63650000604082015260600190565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606082015260800190565b60208082526023908201527f546f726e61646f526f757465723a206f6e6c79496e7374616e6365526567697360408201526274727960e81b606082015260800190565b6000808335601e19843603018112611437578283fd5b8301803591506001600160401b03821115611450578283fd5b602001915036819003821315610d9d57600080fd5b60005b83811015611480578181015183820152602001611468565b83811115610ae85750506000910152565b6001600160a01b03811681146114a657600080fd5b50565b80151581146114a657600080fdfefa28df43db3553771f7209dcef046f3bdfea15870ab625dcda30ac58b82b4008a2646970667358221220526b6f98f0226b043a554c9a0c6eb190a453d379dbf6d0b0804bec30140c148764736f6c634300060c0033"; + +type TornadoRouterConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: TornadoRouterConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class TornadoRouter__factory extends ContractFactory { + constructor(...args: TornadoRouterConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + this.contractName = "TornadoRouter"; + } + + override deploy( + _governanceProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise { + return super.deploy( + _governanceProxyAddress, + overrides || {} + ) as Promise; + } + override getDeployTransaction( + _governanceProxyAddress: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): TransactionRequest { + return super.getDeployTransaction(_governanceProxyAddress, overrides || {}); + } + override attach(address: string): TornadoRouter { + return super.attach(address) as TornadoRouter; + } + override connect(signer: Signer): TornadoRouter__factory { + return super.connect(signer) as TornadoRouter__factory; + } + static readonly contractName: "TornadoRouter"; + + public readonly contractName: "TornadoRouter"; + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TornadoRouterInterface { + return new utils.Interface(_abi) as TornadoRouterInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TornadoRouter { + return new Contract(address, _abi, signerOrProvider) as TornadoRouter; + } +} diff --git a/test/deth/factories/index.ts b/test/deth/factories/index.ts index 8ec95cd..3c88dc0 100644 --- a/test/deth/factories/index.ts +++ b/test/deth/factories/index.ts @@ -10,3 +10,4 @@ export { MulticallContract__factory } from "./MulticallContract__factory"; export { RelayerRegistry__factory } from "./RelayerRegistry__factory"; export { TornadoInstance__factory } from "./TornadoInstance__factory"; export { TornadoProxy__factory } from "./TornadoProxy__factory"; +export { TornadoRouter__factory } from "./TornadoRouter__factory"; diff --git a/test/deth/index.ts b/test/deth/index.ts index 7adbade..6731a4f 100644 --- a/test/deth/index.ts +++ b/test/deth/index.ts @@ -10,6 +10,7 @@ export type { MulticallContract } from "./MulticallContract"; export type { RelayerRegistry } from "./RelayerRegistry"; export type { TornadoInstance } from "./TornadoInstance"; export type { TornadoProxy } from "./TornadoProxy"; +export type { TornadoRouter } from "./TornadoRouter"; export * as factories from "./factories"; export { ERC20__factory } from "./factories/ERC20__factory"; export { ERC20Mock__factory } from "./factories/ERC20Mock__factory"; @@ -20,3 +21,4 @@ export { MulticallContract__factory } from "./factories/MulticallContract__facto export { RelayerRegistry__factory } from "./factories/RelayerRegistry__factory"; export { TornadoInstance__factory } from "./factories/TornadoInstance__factory"; export { TornadoProxy__factory } from "./factories/TornadoProxy__factory"; +export { TornadoRouter__factory } from "./factories/TornadoRouter__factory";