mirror of
https://github.com/tornadocash/tornado-aggregator.git
synced 2025-02-14 13:10:27 +01:00
tests
This commit is contained in:
parent
4b446b7c35
commit
0b4e1059aa
@ -4,5 +4,6 @@ pragma solidity ^0.6.12;
|
||||
pragma experimental ABIEncoderV2;
|
||||
|
||||
import "./GovernanceAggregator.sol";
|
||||
import "./RelayerAggregator.sol";
|
||||
|
||||
contract Aggregator is GovernanceAggregator {}
|
||||
contract Aggregator is GovernanceAggregator, RelayerAggregator {}
|
||||
|
@ -18,7 +18,7 @@ contract RelayerAggregator {
|
||||
ENSRegistry public constant ensRegistry = ENSRegistry(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e);
|
||||
RelayerRegistry public constant relayerRegistry = RelayerRegistry(0x58E8dCC13BE9780fC42E8723D8EaD4CF46943dF2);
|
||||
|
||||
function relayersData(bytes32[] memory _relayers, bytes32[] memory _subdomains) public view returns (Relayer[] memory) {
|
||||
function relayersData(bytes32[] memory _relayers, string[] memory _subdomains) public view returns (Relayer[] memory) {
|
||||
Relayer[] memory relayers = new Relayer[](_relayers.length);
|
||||
|
||||
for (uint256 i = 0; i < _relayers.length; i++) {
|
||||
@ -26,7 +26,8 @@ contract RelayerAggregator {
|
||||
ENSResolver resolver = ENSResolver(ensRegistry.resolver(_relayers[i]));
|
||||
|
||||
for (uint256 j = 0; j < _subdomains.length; j++) {
|
||||
relayers[i].records[j] = resolver.text(_subdomains[j], "url");
|
||||
bytes32 subdomainHash = keccak256(abi.encodePacked(_relayers[i], keccak256(abi.encodePacked(_subdomains[j]))));
|
||||
relayers[i].records[j] = resolver.text(subdomainHash, "url");
|
||||
}
|
||||
|
||||
relayers[i].isRegistered = relayerRegistry.isRelayerRegistered(relayers[i].owner, relayers[i].owner);
|
||||
|
@ -43,7 +43,7 @@ module.exports = {
|
||||
hardhat: {
|
||||
forking: {
|
||||
url: `https://eth-mainnet.alchemyapi.io/v2/${process.env.ALCHEMY_KEY}`,
|
||||
blockNumber: 14250000,
|
||||
blockNumber: 14268040,
|
||||
},
|
||||
chainId: 1,
|
||||
initialBaseFeePerGas: 5,
|
||||
|
@ -1,10 +0,0 @@
|
||||
/* global artifacts */
|
||||
const Aggregator = artifacts.require('Aggregator')
|
||||
|
||||
module.exports = function (deployer) {
|
||||
return deployer.then(async () => {
|
||||
const aggregator = await deployer.deploy(Aggregator)
|
||||
|
||||
console.log('Aggregator :', aggregator.address)
|
||||
})
|
||||
}
|
15
package.json
15
package.json
@ -20,15 +20,14 @@
|
||||
"author": "peppersec.com <hello@peppersec.com>",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@openzeppelin/contracts": "^3.1.0",
|
||||
"bn-chai": "^1.0.1",
|
||||
"chai-as-promised": "^7.1.1",
|
||||
"web3": "^1.2.11",
|
||||
"@nomiclabs/hardhat-ethers": "^2.0.2",
|
||||
"@nomiclabs/hardhat-etherscan": "^2.1.4",
|
||||
"@nomiclabs/hardhat-waffle": "^2.0.1",
|
||||
"@openzeppelin/contracts": "^3.1.0",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"bn-chai": "^1.0.1",
|
||||
"chai": "^4.3.4",
|
||||
"chai-as-promised": "^7.1.1",
|
||||
"coveralls": "^3.1.1",
|
||||
"dotenv": "^10.0.0",
|
||||
"eslint": "^7.32.0",
|
||||
@ -41,10 +40,12 @@
|
||||
"prettier": "^2.3.2",
|
||||
"prettier-plugin-solidity": "^1.0.0-beta.17",
|
||||
"solhint-plugin-prettier": "^0.0.5",
|
||||
"solidity-coverage": "^0.7.17"
|
||||
"solidity-coverage": "^0.7.17",
|
||||
"web3": "^1.2.11"
|
||||
},
|
||||
"dependencies": {
|
||||
"tornado-governance": "2.0.0",
|
||||
"torn-token": "^1.0.6"
|
||||
"eth-ens-namehash": "^2.0.8",
|
||||
"torn-token": "^1.0.6",
|
||||
"tornado-governance": "2.0.0"
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
const { ethers } = require('hardhat')
|
||||
const hre = require('hardhat')
|
||||
const { ethers } = hre
|
||||
|
||||
async function main() {
|
||||
const [deployer] = await ethers.getSigners()
|
||||
@ -14,14 +15,14 @@ async function main() {
|
||||
|
||||
console.log('Delay before verification...')
|
||||
await new Promise((r) => setTimeout(r, 60000))
|
||||
|
||||
|
||||
try {
|
||||
await hre.run('verify:verify', {
|
||||
address: aggregator.address,
|
||||
constructorArguments: [],
|
||||
})
|
||||
} catch (err) {
|
||||
console.log(`Verification of aggregator failed:`, err.message)
|
||||
console.log('Verification of aggregator failed:', err.message)
|
||||
}
|
||||
}
|
||||
|
||||
@ -30,4 +31,4 @@ main()
|
||||
.catch((error) => {
|
||||
console.error(error)
|
||||
process.exit(1)
|
||||
})
|
||||
})
|
||||
|
@ -2,33 +2,37 @@ const hre = require('hardhat')
|
||||
const { ethers, waffle } = hre
|
||||
const { loadFixture } = waffle
|
||||
const { expect } = require('chai')
|
||||
const { BigNumber } = require('@ethersproject/bignumber')
|
||||
const config = require('../config')
|
||||
const { getSignerFromAddress, minewait } = require('./utils')
|
||||
|
||||
const namehash = require('eth-ens-namehash')
|
||||
|
||||
const subdomains = [
|
||||
'mainnet-tornado',
|
||||
'bsc-tornado',
|
||||
'gnosis-tornado',
|
||||
'polygon-tornado',
|
||||
'avalanche-tornado',
|
||||
'optimism-tornado',
|
||||
'arbitrum-tornado',
|
||||
'goerli-tornado',
|
||||
'gnosis-nova',
|
||||
]
|
||||
|
||||
const relayersList = ['relayer-service.eth', 'releth.eth', 't-relay.eth', 'torn69.eth', 'defidevotee.eth']
|
||||
|
||||
describe('Aggregator Tests', () => {
|
||||
async function fixture() {
|
||||
const [sender] = await ethers.getSigners()
|
||||
|
||||
const tornWhale = await getSignerFromAddress(config.tornWhale)
|
||||
|
||||
const gov = await ethers.getContractAt('Governance', config.governance)
|
||||
|
||||
const tornToken = await ethers.getContractAt(
|
||||
'@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20',
|
||||
config.TORN,
|
||||
)
|
||||
|
||||
// deploy Aggregator
|
||||
const AggregatorFactory = await ethers.getContractFactory('Aggregator')
|
||||
const aggregator = await AggregatorFactory.deploy()
|
||||
|
||||
const relayerNameHashes = relayersList.map((r) => namehash.hash(r))
|
||||
|
||||
return {
|
||||
sender,
|
||||
tornWhale,
|
||||
gov,
|
||||
tornToken,
|
||||
aggregator,
|
||||
relayerNameHashes,
|
||||
}
|
||||
}
|
||||
|
||||
@ -36,4 +40,9 @@ describe('Aggregator Tests', () => {
|
||||
const { aggregator } = await loadFixture(fixture)
|
||||
expect(aggregator.address).to.exist
|
||||
})
|
||||
|
||||
it('should work', async function () {
|
||||
const { aggregator, relayerNameHashes } = await loadFixture(fixture)
|
||||
await aggregator.relayersData(relayerNameHashes, subdomains)
|
||||
})
|
||||
})
|
||||
|
27
yarn.lock
27
yarn.lock
@ -5674,6 +5674,7 @@ is-finite@^1.0.0:
|
||||
integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==
|
||||
|
||||
is-fn@^1.0.0, is-fullwidth-code-point@^1.0.0:
|
||||
name is-fn
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-fn/-/is-fn-1.0.0.tgz#9543d5de7bcf5b08a22ec8a20bae6e286d510d8c"
|
||||
integrity sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=
|
||||
@ -6896,6 +6897,11 @@ next-tick@~1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
|
||||
integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
|
||||
|
||||
nice-try@^1.0.4:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
|
||||
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
|
||||
|
||||
node-addon-api@^2.0.0:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32"
|
||||
@ -7317,6 +7323,11 @@ path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
|
||||
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
|
||||
|
||||
path-key@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
|
||||
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
|
||||
|
||||
path-key@^3.1.0:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
|
||||
@ -8023,7 +8034,7 @@ rlp@^2.0.0, rlp@^2.2.4:
|
||||
dependencies:
|
||||
bn.js "^4.11.1"
|
||||
|
||||
rlp@^2.2.1, rlp@^2.2.2:
|
||||
rlp@^2.2.1, rlp@^2.2.2, rlp@^2.2.3:
|
||||
version "2.2.7"
|
||||
resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf"
|
||||
integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==
|
||||
@ -8252,6 +8263,13 @@ sha.js@^2.4.0, sha.js@^2.4.8:
|
||||
inherits "^2.0.1"
|
||||
safe-buffer "^5.0.1"
|
||||
|
||||
shebang-command@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
|
||||
integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
|
||||
dependencies:
|
||||
shebang-regex "^1.0.0"
|
||||
|
||||
shebang-command@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
|
||||
@ -8259,6 +8277,11 @@ shebang-command@^2.0.0:
|
||||
dependencies:
|
||||
shebang-regex "^3.0.0"
|
||||
|
||||
shebang-regex@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
|
||||
integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
|
||||
|
||||
shebang-regex@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
|
||||
@ -10202,7 +10225,7 @@ which-typed-array@^1.1.2:
|
||||
has-tostringtag "^1.0.0"
|
||||
is-typed-array "^1.1.7"
|
||||
|
||||
which@1.3.1, which@^1.1.1, which@^1.3.1:
|
||||
which@1.3.1, which@^1.1.1, which@^1.2.9, which@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
|
||||
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
|
||||
|
Loading…
Reference in New Issue
Block a user