@@ -7,15 +7,30 @@ import "../../src/bridge/Bridge.sol";
77import "../../src/bridge/SequencerInbox.sol " ;
88import {Reader4844} from "../../src/mocks/Reader4844.sol " ;
99import {IGasRefunder} from "../../src/libraries/IGasRefunder.sol " ;
10- // import {EspressoTEEVerifierBlobsMock} from "../../src/mocks/EspressoTEEVerifierBlobsMock.sol";
11- import {EspressoTEEVerifier} from "espresso-tee-contracts/EspressoTEEVerifier.sol " ;
12- import {EspressoSGXTEEVerifier} from "espresso-tee-contracts/EspressoSGXTEEVerifier.sol " ;
10+ import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol " ;
1311import {IEspressoTEEVerifier} from "espresso-tee-contracts/interface/IEspressoTEEVerifier.sol " ;
14- import {IEspressoNitroTEEVerifier} from
15- "espresso-tee-contracts/interface/IEspressoNitroTEEVerifier.sol " ;
16- import {EspressoNitroTEEVerifier} from "espresso-tee-contracts/EspressoNitroTEEVerifier.sol " ;
12+ import {ServiceType} from "espresso-tee-contracts/types/Types.sol " ;
1713
18- import {CertManager} from "@nitro-validator/CertManager.sol " ;
14+ contract TEEVerifierMockBlobs {
15+ mapping (uint8 => mapping (address => bool )) private _signers;
16+
17+ function addSigner (address signer , IEspressoTEEVerifier.TeeType teeType ) external {
18+ _signers[uint8 (teeType)][signer] = true ;
19+ }
20+
21+ function verify (
22+ bytes memory signature ,
23+ bytes32 userDataHash ,
24+ IEspressoTEEVerifier.TeeType teeType ,
25+ ServiceType
26+ ) external view returns (bool ) {
27+ address signer = ECDSA.recover (userDataHash, signature);
28+ if (! _signers[uint8 (teeType)][signer]) {
29+ revert IEspressoTEEVerifier.InvalidSignature ();
30+ }
31+ return true ;
32+ }
33+ }
1934
2035contract RollupMock {
2136 address public immutable owner;
@@ -28,15 +43,10 @@ contract RollupMock {
2843}
2944
3045contract SequencerInboxBlobsTEE is Test {
31- address adminTEE = address (141 );
3246 address rollupOwner = address (137 );
3347 address proxyAdmin = address (140 );
3448 address dummyInbox = address (139 );
35- address v3QuoteVerifier = address (0x6E64769A13617f528a2135692484B681Ee1a7169 );
36- bytes32 enclaveHash =
37- bytes32 (0x01f7290cb6bbaa427eca3daeb25eecccb87c4b61259b1ae2125182c4d77169c0 );
3849 address signerAddr = address (0x5f0B0D79E7F051903b08E30a3d6eA50D80333932 );
39- bytes32 pcr0Hash = bytes32 (0xc980e59163ce244bb4bb6211f48c7b46f88a4f40943e84eb99bdc41e129bd293 );
4050
4151 uint256 maxDataSize = 10000 ;
4252 ISequencerInbox.MaxTimeVariation maxTimeVariation = ISequencerInbox.MaxTimeVariation ({
@@ -45,43 +55,11 @@ contract SequencerInboxBlobsTEE is Test {
4555 delaySeconds: 100 ,
4656 futureSeconds: 100
4757 });
48- bytes sampleQuote = hex "00 " ;
49- EspressoTEEVerifier espressoTEEVerifier;
50- EspressoNitroTEEVerifier espressoNitroTEEVerifier;
51- EspressoSGXTEEVerifier espressoSGXTEEVerifier;
52-
53- address reader4844 = address (0xf6134C5849Fe8177163747288d41283B271B1624 );
58+ TEEVerifierMockBlobs espressoTEEVerifier;
5459
5560 function setUp () public {
56- vm.createSelectFork (
57- "https://rpc.ankr.com/eth_sepolia/10a56026b3c20655c1dab931446156dea4d63d87d1261934c82a1b8045885923 "
58- );
59- espressoSGXTEEVerifier = new EspressoSGXTEEVerifier (enclaveHash, v3QuoteVerifier);
60- espressoNitroTEEVerifier = new EspressoNitroTEEVerifier (pcr0Hash, new CertManager ());
61- espressoTEEVerifier =
62- new EspressoTEEVerifier (espressoSGXTEEVerifier, espressoNitroTEEVerifier);
63- string memory quotePath = "/test/foundry/configs/blobs_attestation.bin " ;
64- string memory inputFile = string .concat (vm.projectRoot (), quotePath);
65-
66- sampleQuote = vm.readFileBinary (inputFile);
67-
68- vm.warp (1_744_220_000 );
69- string memory attestationPath = "/test/foundry/configs/nitro-attestation.bin " ;
70- string memory attestationFile = string .concat (vm.projectRoot (), attestationPath);
71- bytes memory attestation = vm.readFileBinary (attestationFile);
72-
73- string memory signaturePath = "/test/foundry/configs/sig-attestation.bin " ;
74- string memory sigFile = string .concat (vm.projectRoot (), signaturePath);
75- bytes memory signature = vm.readFileBinary (sigFile);
76-
77- vm.expectEmit ();
78- emit IEspressoNitroTEEVerifier.AWSSignerRegistered (signerAddr, pcr0Hash);
79- espressoTEEVerifier.registerSigner (
80- attestation, signature, IEspressoTEEVerifier.TeeType.NITRO
81- );
82- bool value =
83- espressoTEEVerifier.registeredSigners (signerAddr, IEspressoTEEVerifier.TeeType.NITRO);
84- vm.assertEq (value, true );
61+ espressoTEEVerifier = new TEEVerifierMockBlobs ();
62+ espressoTEEVerifier.addSigner (signerAddr, IEspressoTEEVerifier.TeeType.NITRO);
8563 }
8664
8765 function deployRollup () internal returns (SequencerInbox, Bridge) {
0 commit comments