Skip to content

Commit 127fb2b

Browse files
authored
Merge pull request #106 from EspressoSystems/jh/local-deployment
Fix yarn build:all
2 parents 590715c + 5acbe94 commit 127fb2b

File tree

5 files changed

+72
-111
lines changed

5 files changed

+72
-111
lines changed

scripts/rollupCreation.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export async function createRollup(
6767
rollupCreatorAddress: string,
6868
feeToken: string,
6969
feeTokenPricer: string,
70-
stakeToken: string
70+
stakeToken: string,
7171
espressoTEEVerifierAddress: string,
7272
): Promise<{
7373
rollupCreationResult: RollupCreationResult
@@ -113,7 +113,8 @@ export async function createRollup(
113113
feeToken,
114114
feeTokenPricer,
115115
validatorWalletCreator,
116-
stakeToken
116+
stakeToken,
117+
espressoTEEVerifierAddress,
117118
)
118119
: {
119120
config: config.config,

test/foundry/BridgeCreator.t.sol

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ import '../../src/bridge/AbsInbox.sol';
99
import '@openzeppelin/contracts/token/ERC20/ERC20.sol';
1010
import '@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol';
1111
import {EspressoTEEVerifierMock} from "espresso-tee-contracts/mocks/EspressoTEEVerifier.sol";
12+
import {EspressoSGXTEEVerifierMock} from "espresso-tee-contracts/mocks/EspressoSGXTEEVerifierMock.sol";
13+
import {EspressoNitroTEEVerifierMock} from "espresso-tee-contracts/mocks/EspressoNitroTEEVerifierMock.sol";
14+
import {IEspressoSGXTEEVerifier} from "espresso-tee-contracts/interface/IEspressoSGXTEEVerifier.sol";
15+
import {IEspressoNitroTEEVerifier} from "espresso-tee-contracts/interface/IEspressoNitroTEEVerifier.sol";
1216

1317
contract BridgeCreatorTest is Test {
1418
BridgeCreator public creator;
@@ -170,7 +174,7 @@ contract BridgeCreatorTest is Test {
170174
replenishRateInBasis: 0
171175
});
172176

173-
EspressoTEEVerifierMock espressoTEEVerifier = new EspressoTEEVerifierMock();
177+
EspressoTEEVerifierMock espressoTEEVerifier = new EspressoTEEVerifierMock(IEspressoSGXTEEVerifier(address(new EspressoSGXTEEVerifierMock())), IEspressoNitroTEEVerifier(address(new EspressoNitroTEEVerifierMock())));
174178

175179
BridgeCreator.BridgeContracts memory contracts = creator.createBridge(
176180
proxyAdmin,
@@ -261,7 +265,7 @@ contract BridgeCreatorTest is Test {
261265
replenishRateInBasis: 0
262266
});
263267

264-
EspressoTEEVerifierMock espressoTEEVerifier = new EspressoTEEVerifierMock();
268+
EspressoTEEVerifierMock espressoTEEVerifier = new EspressoTEEVerifierMock(IEspressoSGXTEEVerifier(address(new EspressoSGXTEEVerifierMock())), IEspressoNitroTEEVerifier(address(new EspressoNitroTEEVerifierMock())));
265269

266270
BridgeCreator.BridgeContracts memory contracts = creator.createBridge(
267271
proxyAdmin,
@@ -357,7 +361,7 @@ contract BridgeCreatorTest is Test {
357361
replenishRateInBasis: 0
358362
});
359363

360-
EspressoTEEVerifierMock espressoTEEVerifier = new EspressoTEEVerifierMock();
364+
EspressoTEEVerifierMock espressoTEEVerifier = new EspressoTEEVerifierMock(IEspressoSGXTEEVerifier(address(new EspressoSGXTEEVerifierMock())), IEspressoNitroTEEVerifier(address(new EspressoNitroTEEVerifierMock())));
361365

362366
creator.createBridge(
363367
proxyAdmin,

test/foundry/RollupCreator.t.sol

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ import '@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol'
2121
import '@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol';
2222
import { NoZeroTransferToken } from './util/NoZeroTransferToken.sol';
2323
import {EspressoTEEVerifierMock} from "espresso-tee-contracts/mocks/EspressoTEEVerifier.sol";
24+
import {EspressoSGXTEEVerifierMock} from "espresso-tee-contracts/mocks/EspressoSGXTEEVerifierMock.sol";
25+
import {EspressoNitroTEEVerifierMock} from "espresso-tee-contracts/mocks/EspressoNitroTEEVerifierMock.sol";
26+
import {IEspressoSGXTEEVerifier} from "espresso-tee-contracts/interface/IEspressoSGXTEEVerifier.sol";
27+
import {IEspressoNitroTEEVerifier} from "espresso-tee-contracts/interface/IEspressoNitroTEEVerifier.sol";
2428

2529
contract RollupCreatorTest is Test {
2630
RollupCreator public rollupCreator;
@@ -161,7 +165,7 @@ contract RollupCreatorTest is Test {
161165
max: 14400,
162166
replenishRateInBasis: 500
163167
}),
164-
espressoTEEVerifier: address(new EspressoTEEVerifierMock())
168+
espressoTEEVerifier: address(new EspressoTEEVerifierMock(IEspressoSGXTEEVerifier(address(new EspressoSGXTEEVerifierMock())), IEspressoNitroTEEVerifier(address(new EspressoNitroTEEVerifierMock()))))
165169
});
166170

167171
// prepare funds
@@ -405,7 +409,7 @@ contract RollupCreatorTest is Test {
405409
max: 14400,
406410
replenishRateInBasis: 500
407411
}),
408-
espressoTEEVerifier: address(new EspressoTEEVerifierMock())
412+
espressoTEEVerifier: address(new EspressoTEEVerifierMock(IEspressoSGXTEEVerifier(address(new EspressoSGXTEEVerifierMock())), IEspressoNitroTEEVerifier(address(new EspressoNitroTEEVerifierMock()))))
409413
});
410414

411415
// approve fee token to pay for deployment of L2 factories
@@ -644,7 +648,7 @@ contract RollupCreatorTest is Test {
644648
max: 14400,
645649
replenishRateInBasis: 500
646650
}),
647-
espressoTEEVerifier: address(new EspressoTEEVerifierMock())
651+
espressoTEEVerifier: address(new EspressoTEEVerifierMock(IEspressoSGXTEEVerifier(address(new EspressoSGXTEEVerifierMock())), IEspressoNitroTEEVerifier(address(new EspressoNitroTEEVerifierMock()))))
648652
});
649653

650654
// prepare funds

test/foundry/SequencerInboxBlobsTEE.t.sol

Lines changed: 25 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,30 @@ import "../../src/bridge/Bridge.sol";
77
import "../../src/bridge/SequencerInbox.sol";
88
import {Reader4844} from "../../src/mocks/Reader4844.sol";
99
import {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";
1311
import {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

2035
contract RollupMock {
2136
address public immutable owner;
@@ -28,15 +43,10 @@ contract RollupMock {
2843
}
2944

3045
contract 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

Comments
 (0)