Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
de647f83
Commit
de647f83
authored
May 10, 2023
by
tre
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
address comments
parent
391cdda4
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
57 additions
and
59 deletions
+57
-59
AdminFaucetAuthModule.t.sol
...phery/contracts/foundry-tests/AdminFaucetAuthModule.t.sol
+11
-10
Faucet.t.sol
.../contracts-periphery/contracts/foundry-tests/Faucet.t.sol
+32
-26
Faucet.sol
...contracts-periphery/contracts/universal/faucet/Faucet.sol
+3
-6
AdminFaucetAuthModule.sol
...ts/universal/faucet/authmodules/AdminFaucetAuthModule.sol
+11
-17
No files found.
packages/contracts-periphery/contracts/foundry-tests/AdminFaucetAuthModule.t.sol
View file @
de647f83
...
...
@@ -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(adminFam
Version
),
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(adminFam
Version
),
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(adminFam
Version
),
block.chainid,
address(adminFam),
fundsReceiver,
...
...
packages/contracts-periphery/contracts/foundry-tests/Faucet.t.sol
View file @
de647f83
...
...
@@ -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(optimistNftFam
Version
),
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(optimistNftFam
Version
),
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(optimistNftFam
Version
),
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(githubFam
Version
),
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(githubFam
Version
),
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(githubFam
Version
),
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(githubFam
Version
),
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(githubFam
Version
),
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(githubFam
Version
),
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(githubFam
Version
),
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(githubFam
Version
),
block.chainid,
address(githubFam),
fundsReceiver,
...
...
packages/contracts-periphery/contracts/universal/faucet/Faucet.sol
View file @
de647f83
...
...
@@ -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
usedN
onces;
mapping(bytes => mapping(bytes32 => bool)) public
n
onces;
/**
* @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.
usedN
onces[_auth.id][_params.nonce] = true;
n
onces[_auth.id][_params.nonce] = true;
// Execute a safe transfer of ETH to the recipient account.
new SafeSend{ value: config.amount }(_params.recipient);
...
...
packages/contracts-periphery/contracts/universal/faucet/authmodules/AdminFaucetAuthModule.sol
View file @
de647f83
// 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;
}
/**
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment