Skip to content

Commit

Permalink
chore(protocol): change two vars to immutable & use SignatureChecker (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
dantaik authored Apr 2, 2024
1 parent 643bd17 commit 11ad84d
Show file tree
Hide file tree
Showing 5 changed files with 5 additions and 42 deletions.
4 changes: 3 additions & 1 deletion packages/protocol/contracts/L1/hooks/AssignmentHook.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ pragma solidity 0.8.24;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol";
import "../../common/EssentialContract.sol";
import "../../libs/LibAddress.sol";
import "../ITaikoL1.sol";
Expand All @@ -13,6 +14,7 @@ import "./IHook.sol";
/// @custom:security-contact [email protected]
contract AssignmentHook is EssentialContract, IHook {
using LibAddress for address;
using SignatureChecker for address;
using SafeERC20 for IERC20;

struct ProverAssignment {
Expand Down Expand Up @@ -95,7 +97,7 @@ contract AssignmentHook is EssentialContract, IHook {
address taikoL1Address = msg.sender;
bytes32 hash = hashAssignment(assignment, taikoL1Address, _meta.blobHash);

if (!_blk.assignedProver.isValidSignature(hash, assignment.signature)) {
if (!_blk.assignedProver.isValidSignatureNow(hash, assignment.signature)) {
revert HOOK_ASSIGNMENT_INVALID_SIG();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ contract AutomataDcapV3Attestation is IAttestation {
mapping(string fmspc => TCBInfoStruct.TCBInfo tcbInfo) public tcbInfo;
EnclaveIdStruct.EnclaveId public qeIdentity;

address public owner;
address public immutable owner;

constructor(address sigVerifyLibAddr, address pemCertLibAddr) {
sigVerifyLib = ISigVerifyLib(sigVerifyLibAddr);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import "./BytesUtils.sol";
contract SigVerifyLib is ISigVerifyLib {
using BytesUtils for bytes;

address private __es256Verifier;
address private immutable __es256Verifier;

constructor(address es256Verifier) {
__es256Verifier = es256Verifier;
Expand Down
17 changes: 0 additions & 17 deletions packages/protocol/contracts/libs/LibAddress.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
pragma solidity 0.8.24;

import "@openzeppelin/contracts/utils/Address.sol";
import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
import "@openzeppelin/contracts/utils/introspection/IERC165.sol";
import "@openzeppelin/contracts/interfaces/IERC1271.sol";

Expand Down Expand Up @@ -83,20 +82,4 @@ library LibAddress {
result_ = _result;
} catch { }
}

function isValidSignature(
address _addr,
bytes32 _hash,
bytes memory _sig
)
internal
view
returns (bool)
{
if (Address.isContract(_addr)) {
return IERC1271(_addr).isValidSignature(_hash, _sig) == _EIP1271_MAGICVALUE;
} else {
return ECDSA.recover(_hash, _sig) == _addr;
}
}
}
22 changes: 0 additions & 22 deletions packages/protocol/test/libs/LibAddress.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -61,18 +61,6 @@ contract EtherSenderContract {
{
return LibAddress.supportsInterface(_addr, _interfaceId);
}

function isValidSignature(
address _addr,
bytes32 _hash,
bytes memory _sig
)
public
view
returns (bool)
{
return LibAddress.isValidSignature(_addr, _hash, _sig);
}
}

contract TestLibAddress is TaikoTest {
Expand Down Expand Up @@ -141,14 +129,4 @@ contract TestLibAddress is TaikoTest {

assertEq(doesSupport, true);
}

function test_isValidSignature() public {
bytes32 hash = bytes32("DUMMY_SIGNATURE_HASH_DATA");

// 0x1 is Alice's private key
(uint8 v, bytes32 r, bytes32 s) = vm.sign(0x1, hash);
bool validSignature = bridge.isValidSignature(Alice, hash, abi.encodePacked(r, s, v));

assertEq(validSignature, true);
}
}

0 comments on commit 11ad84d

Please sign in to comment.