-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #19 for FF exhibition v4 release
Feralfile Exhibition V4
- Loading branch information
Showing
12 changed files
with
1,867 additions
and
58 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
name: prettier | ||
on: | ||
push: | ||
pull_request: | ||
|
||
jobs: | ||
prettier: | ||
name: prettier | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout Code | ||
uses: actions/checkout@v3 | ||
- name: Prettify code | ||
uses: creyD/[email protected] | ||
with: | ||
# This part is also where you can pass other options, for example: | ||
prettier_options: --check contracts/FeralfileArtworkV4.sol |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,4 +2,4 @@ | |
build | ||
node_modules | ||
coverage/* | ||
coverage.json | ||
coverage.json |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
// SPDX-License-Identifier: MIT | ||
pragma solidity ^0.8.13; | ||
|
||
import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; | ||
import "@openzeppelin/contracts/access/Ownable.sol"; | ||
|
||
contract ECDSASigner is Ownable { | ||
address private _signer; | ||
|
||
constructor(address signer_) { | ||
require(signer_ != address(0), "ECDSASign: signer_ is zero address"); | ||
_signer = signer_; | ||
} | ||
|
||
/// @notice isValidSignature validates a message by ecrecover to ensure | ||
// it is signed by signer. | ||
/// @param message_ - the raw message for signing | ||
/// @param r_ - part of signature for validating parameters integrity | ||
/// @param s_ - part of signature for validating parameters integrity | ||
/// @param v_ - part of signature for validating parameters integrity | ||
function isValidSignature( | ||
bytes32 message_, | ||
bytes32 r_, | ||
bytes32 s_, | ||
uint8 v_ | ||
) internal view returns (bool) { | ||
address reqSigner = ECDSA.recover( | ||
ECDSA.toEthSignedMessageHash(message_), | ||
v_, | ||
r_, | ||
s_ | ||
); | ||
return reqSigner == _signer; | ||
} | ||
|
||
/// @notice set the signer | ||
/// @param signer_ - the address of signer | ||
function setSigner(address signer_) external onlyOwner { | ||
require(signer_ != address(0), "ECDSASign: signer_ is zero address"); | ||
_signer = signer_; | ||
} | ||
|
||
function signer() external view returns (address) { | ||
return _signer; | ||
} | ||
} |
Oops, something went wrong.