Commit de647f83 authored by tre's avatar tre

address comments

parent 391cdda4
......@@ -30,11 +30,13 @@ contract AdminFaucetAuthModuleTest is Test {
/**
* @notice An instance of the `AdminFaucetAuthModule` contract.
*/
AdminFaucetAuthModule adminFam;
AdminFaucetAuthModule internal adminFam;
/**
* @notice An instance of the `FaucetHelper` contract.
*/
FaucetHelper faucetHelper;
FaucetHelper internal faucetHelper;
string internal adminFamName = "AdminFAM";
string internal adminFamVersion = "1";
/**
* @notice Deploy the `AdminFaucetAuthModule` contract.
......@@ -46,8 +48,7 @@ contract AdminFaucetAuthModuleTest is Test {
nonAdminKey = 0xC0C0C0C0;
nonAdmin = vm.addr(nonAdminKey);
adminFam = new AdminFaucetAuthModule(admin);
adminFam.initialize("AdminFAM");
adminFam = new AdminFaucetAuthModule(admin, adminFamName, adminFamVersion);
faucetHelper = new FaucetHelper();
}
......@@ -108,8 +109,8 @@ contract AdminFaucetAuthModuleTest is Test {
address fundsReceiver = makeAddr("fundsReceiver");
bytes memory proof = issueProofWithEIP712Domain(
adminKey,
bytes("AdminFAM"),
bytes(adminFam.version()),
bytes(adminFamName),
bytes(adminFamVersion),
block.chainid,
address(adminFam),
fundsReceiver,
......@@ -136,8 +137,8 @@ contract AdminFaucetAuthModuleTest is Test {
address fundsReceiver = makeAddr("fundsReceiver");
bytes memory proof = issueProofWithEIP712Domain(
nonAdminKey,
bytes("AdminFAM"),
bytes(adminFam.version()),
bytes(adminFamName),
bytes(adminFamVersion),
block.chainid,
address(adminFam),
fundsReceiver,
......@@ -166,8 +167,8 @@ contract AdminFaucetAuthModuleTest is Test {
address randomAddress = makeAddr("randomAddress");
bytes memory proof = issueProofWithEIP712Domain(
adminKey,
bytes("AdminFAM"),
bytes(adminFam.version()),
bytes(adminFamName),
bytes(adminFamVersion),
block.chainid,
address(adminFam),
fundsReceiver,
......
......@@ -23,7 +23,11 @@ contract Faucet_Initializer is Test {
Faucet faucet;
AdminFaucetAuthModule optimistNftFam;
string internal optimistNftFamName = "OptimistNftFam";
string internal optimistNftFamVersion = "1";
AdminFaucetAuthModule githubFam;
string internal githubFamName = "GithubFam";
string internal githubFamVersion = "1";
FaucetHelper faucetHelper;
......@@ -52,10 +56,12 @@ contract Faucet_Initializer is Test {
vm.deal(address(faucetContractAdmin), 5 ether);
vm.deal(address(nonAdmin), 5 ether);
optimistNftFam = new AdminFaucetAuthModule(faucetAuthAdmin);
optimistNftFam.initialize("OptimistNftFam");
githubFam = new AdminFaucetAuthModule(faucetAuthAdmin);
githubFam.initialize("GithubFam");
optimistNftFam = new AdminFaucetAuthModule(
faucetAuthAdmin,
optimistNftFamName,
optimistNftFamVersion
);
githubFam = new AdminFaucetAuthModule(faucetAuthAdmin, githubFamName, githubFamVersion);
faucetHelper = new FaucetHelper();
}
......@@ -129,8 +135,8 @@ contract FaucetTest is Faucet_Initializer {
bytes32 nonce = faucetHelper.consumeNonce();
bytes memory signature = issueProofWithEIP712Domain(
faucetAuthAdminKey,
bytes("OptimistNftFam"),
bytes(optimistNftFam.version()),
bytes(optimistNftFamName),
bytes(optimistNftFamVersion),
block.chainid,
address(optimistNftFam),
fundsReceiver,
......@@ -150,8 +156,8 @@ contract FaucetTest is Faucet_Initializer {
bytes32 nonce = faucetHelper.consumeNonce();
bytes memory signature = issueProofWithEIP712Domain(
nonAdminKey,
bytes("OptimistNftFam"),
bytes(optimistNftFam.version()),
bytes(optimistNftFamName),
bytes(optimistNftFamVersion),
block.chainid,
address(optimistNftFam),
fundsReceiver,
......@@ -172,8 +178,8 @@ contract FaucetTest is Faucet_Initializer {
bytes32 nonce = faucetHelper.consumeNonce();
bytes memory signature = issueProofWithEIP712Domain(
faucetAuthAdminKey,
bytes("OptimistNftFam"),
bytes(optimistNftFam.version()),
bytes(optimistNftFamName),
bytes(optimistNftFamVersion),
block.chainid,
address(optimistNftFam),
fundsReceiver,
......@@ -200,8 +206,8 @@ contract FaucetTest is Faucet_Initializer {
bytes32 nonce = faucetHelper.consumeNonce();
bytes memory signature = issueProofWithEIP712Domain(
faucetAuthAdminKey,
bytes("GithubFam"),
bytes(githubFam.version()),
bytes(githubFamName),
bytes(githubFamVersion),
block.chainid,
address(githubFam),
fundsReceiver,
......@@ -228,8 +234,8 @@ contract FaucetTest is Faucet_Initializer {
bytes32 nonce = faucetHelper.consumeNonce();
bytes memory signature = issueProofWithEIP712Domain(
faucetAuthAdminKey,
bytes("GithubFam"),
bytes(githubFam.version()),
bytes(githubFamName),
bytes(githubFamVersion),
block.chainid,
address(githubFam),
fundsReceiver,
......@@ -252,8 +258,8 @@ contract FaucetTest is Faucet_Initializer {
bytes32 nonce = faucetHelper.consumeNonce();
bytes memory signature = issueProofWithEIP712Domain(
faucetAuthAdminKey,
bytes("GithubFam"),
bytes(githubFam.version()),
bytes(githubFamName),
bytes(githubFamVersion),
block.chainid,
address(githubFam),
fundsReceiver,
......@@ -282,8 +288,8 @@ contract FaucetTest is Faucet_Initializer {
bytes32 nonce = faucetHelper.consumeNonce();
bytes memory signature = issueProofWithEIP712Domain(
faucetAuthAdminKey,
bytes("GithubFam"),
bytes(githubFam.version()),
bytes(githubFamName),
bytes(githubFamVersion),
block.chainid,
address(githubFam),
fundsReceiver,
......@@ -310,8 +316,8 @@ contract FaucetTest is Faucet_Initializer {
bytes32 nonce0 = faucetHelper.consumeNonce();
bytes memory signature0 = issueProofWithEIP712Domain(
faucetAuthAdminKey,
bytes("GithubFam"),
bytes(githubFam.version()),
bytes(githubFamName),
bytes(githubFamVersion),
block.chainid,
address(githubFam),
fundsReceiver,
......@@ -328,8 +334,8 @@ contract FaucetTest is Faucet_Initializer {
bytes32 nonce1 = faucetHelper.consumeNonce();
bytes memory signature1 = issueProofWithEIP712Domain(
faucetAuthAdminKey,
bytes("GithubFam"),
bytes(githubFam.version()),
bytes(githubFamName),
bytes(githubFamVersion),
block.chainid,
address(githubFam),
fundsReceiver,
......@@ -350,8 +356,8 @@ contract FaucetTest is Faucet_Initializer {
bytes32 nonce0 = faucetHelper.consumeNonce();
bytes memory signature0 = issueProofWithEIP712Domain(
faucetAuthAdminKey,
bytes("GithubFam"),
bytes(githubFam.version()),
bytes(githubFamName),
bytes(githubFamVersion),
block.chainid,
address(githubFam),
fundsReceiver,
......@@ -368,8 +374,8 @@ contract FaucetTest is Faucet_Initializer {
bytes32 nonce1 = faucetHelper.consumeNonce();
bytes memory signature1 = issueProofWithEIP712Domain(
faucetAuthAdminKey,
bytes("GithubFam"),
bytes(githubFam.version()),
bytes(githubFamName),
bytes(githubFamVersion),
block.chainid,
address(githubFam),
fundsReceiver,
......
......@@ -80,7 +80,7 @@ contract Faucet {
/**
* @notice Maps from id to nonces to whether or not they have been used.
*/
mapping(bytes => mapping(bytes32 => bool)) public usedNonces;
mapping(bytes => mapping(bytes32 => bool)) public nonces;
/**
* @notice Modifier that makes a function admin priviledged.
......@@ -141,10 +141,7 @@ contract Faucet {
// This checks that the nonce has not been used for this issuer before. The nonces are
// scoped to the issuer address, so the same nonce can be used by different issuers without
// clashing.
require(
usedNonces[_auth.id][_params.nonce] == false,
"Faucet: nonce has already been used"
);
require(nonces[_auth.id][_params.nonce] == false, "Faucet: nonce has already been used");
// Make sure the timeout has elapsed.
require(
......@@ -162,7 +159,7 @@ contract Faucet {
timeouts[_auth.module][_auth.id] = block.timestamp + config.ttl;
// Mark the nonce as used.
usedNonces[_auth.id][_params.nonce] = true;
nonces[_auth.id][_params.nonce] = true;
// Execute a safe transfer of ETH to the recipient account.
new SafeSend{ value: config.amount }(_params.recipient);
......
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { Semver } from "@eth-optimism/contracts-bedrock/contracts/universal/Semver.sol";
import {
EIP712Upgradeable
} from "@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol";
import { EIP712 } from "@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol";
import { SignatureChecker } from "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol";
import { IFaucetAuthModule } from "./IFaucetAuthModule.sol";
import { Faucet } from "../Faucet.sol";
......@@ -14,7 +11,7 @@ import { Faucet } from "../Faucet.sol";
* @notice FaucetAuthModule that allows an admin to sign off on a given faucet drip. Takes an admin
* as the constructor argument.
*/
contract AdminFaucetAuthModule is IFaucetAuthModule, Semver, EIP712Upgradeable {
contract AdminFaucetAuthModule is IFaucetAuthModule, EIP712 {
/**
* @notice Admin address that can sign off on drips.
*/
......@@ -40,19 +37,16 @@ contract AdminFaucetAuthModule is IFaucetAuthModule, Semver, EIP712Upgradeable {
}
/**
* @param admin Admin address that can sign off on drips.
* @param _admin Admin address that can sign off on drips.
* @param _name Contract name.
* @param _version The current major version of the signing domain.
*/
constructor(address admin) Semver(1, 0, 0) {
ADMIN = admin;
}
/**
* @notice Initializes this contract, setting the EIP712 context.
*
* @param _name Contract name.
*/
function initialize(string memory _name) public initializer {
__EIP712_init(_name, version());
constructor(
address _admin,
string memory _name,
string memory _version
) EIP712(_name, _version) {
ADMIN = _admin;
}
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment