tornado-contracts/contracts/Unaudited/interfaces/ITornadoV2.sol

40 lines
1.2 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
interface ITornadoV2 {
function weth() external view returns (address);
function deposit(
uint256[] memory _ids,
bytes32[] memory _commitments,
bytes memory permitData
) external payable;
function withdraw(
uint256 id,
bytes calldata _proof,
bytes32 _root,
bytes32 _nullifierHash,
address payable _recipient,
address payable _relayer,
uint256 _relayerFee,
uint256 _refund,
bytes memory _data
) external payable;
function nextIndex(uint256 id) external view returns (uint32);
function getLastRoot(uint256 id) external view returns (bytes32);
function token(uint256 id) external view returns (address);
function denomination(uint256 id) external view returns (uint256);
function filledSubtrees(uint256 id, uint256 index) external view returns (bytes32);
function zeros(uint256 id, uint256 index) external view returns (bytes32);
function roots(uint256 id, uint256 index) external view returns (bytes32);
function isSpent(bytes32 _nullifierHash) external view returns (bool);
}