This commit is contained in:
Alexey 2022-02-24 12:35:43 +01:00
parent 4b446b7c35
commit 0b4e1059aa
No known key found for this signature in database
GPG Key ID: C77958099D784E76
8 changed files with 68 additions and 42 deletions

View File

@ -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 {}

View File

@ -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);

View File

@ -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,

View File

@ -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)
})
}

View File

@ -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"
}
}

View File

@ -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)
})
})

View File

@ -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)
})
})

View File

@ -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==